У меня есть следующий CMakeLists.txt
для построения библиотеки:
cmake_minimum_required(VERSION 3.7)
project(my_lib)
#...
add_library(my_lib SHARED lib.hpp lib.cpp)
Что нужно добавить, чтобы cmake
генерировал 2 одинаковых .dll
(или 1, а вторую копировал) в папки других проектов, которые находятся вне текущей папки?
Насколько я понимаю, надо использовать CMAKE_ARCHIVE_OUTPUT_DIRECTORY
для .lib
и CMAKE_LIBRARY_OUTPUT_DIRECTORY
для .dll
, но непонятно, как указать нужные мне папки без указания абсолютных путей.
Вот структура папок, чтобы было понятно:
my_project
|- my_lib // внутри этой папки по умолчанию появится библиотека, а надо, чтобы
|- user_1 // она была здесь
|- user_2 // и здесь
Судя по всему, вам нужны переменные CMAKE_CURRENT_BINARY_DIR
- каталог сборки для текущего CMakeList и CMAKE_BINARY_DIR
- каталог сборки для корневого CMakeList, для которого был запущен CMake. Через них можно абсолютный путь получить.
Тут нужно помнить, что если у пас проект с подпроектами, то в каталоге сборки будет точно такая же иерархия подпроектов, если вручную ничего не менять.
Возможно, вам нужно не копировать файлы, а искать, как правильно прописывать пути к либам из дочернего проекта в корневом CMakeList (под Linux фокус с ручным копированием не прокатит, например). Я сам с этим пока толком не разобрался, но у меня получалось нормально собирать проекты с зависимостями при помощи conan (совместно с CMake)
P.S. Если у вас не проект с подпроектами, нужно просто устанавливать либы после сборки, задавая install prefix.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Никак не могу найти ответ в Инете и разобраться что вообще происходит
Здравствуйте, подскажите, пожалуйста, как такое можно реализовать?http://10yearsmetalloinvest
Добрый день, почему я немогу обратиться к $('body') через scrollerselement, получаю: Uncaught TypeError: Cannot read property 'element' of undefined но вот так $('body')