Я пытаюсь использовать cmake (в Linux с GNU make и g ++) для создания проекта с двумя подкаталогами: MyLib и MyApp.MyLib содержит исходный код статической библиотеки; MyApp необходимо связать с этой библиотекой. Я пытаюсь собрать Linux с помощью сгенерированных make-файлов, используя следующий файл CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
project (MyProj)
include_directories (MyLib)
file(GLOB MyLibSrc MyLib/*.cpp)
add_library(MyLibrary STATIC ${MyLibSrc})
file(GLOB MyAppSrc MyApp/*.cpp)
add_executable(MyApplication ${MyAppSrc})
target_link_libraries(MyApplication MyLibrary)
Это «почти» работает. Он не работает во время компоновки, потому что пока он генерирует libMyLibrary.a, он находится в корне. Когда я добавляю:
link_directories(${MyProj_BINARY_DIR})
, это не имеет значения.
У меня есть несколько (связанных) вопросов:
Я относительный новичок в cmake. Я читал то, что могу найти в Интернете, но обнаружил, что изо всех сил пытаюсь связать свою библиотеку с моим исполняемым файлом. Такая конфигурация, на мой взгляд, должна быть довольно распространенной. Пример, из которого можно поставить кроватку, был бы очень полезен, но я не нашел его.