У мене є невеликий проект із Makefile, який я намагаюся перетворити на CMake, здебільшого лише для того, щоб отримати досвід роботи з CMake. Для цілей цього прикладу проект містить вихідний файл (C ++, хоча я не вважаю, що мова особливо актуальний) та файл статичної бібліотеки, який я скопіював з іншого місця. Для аргументу припустимо, що вихідний код для бібліотеки недоступний; У мене є лише файл .a та відповідний заголовок.
Мій ручний Makefile містить це правило збірки:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
який відмінно працює. Як сказати CMake відтворити це? Звичайно, не буквально цей точний make-файл, а щось, що включає еквівалентну команду зв’язування. Я спробував очевидні, але наївні способи, наприклад
add_executable(main main.cpp libbingitup.a)
або
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
а також різні речі з link_directories(.)
або add_library(bingitup STATIC IMPORTED)
тощо, але поки що нічого такого, що призводить до успішного зв’язку. Що мені робити?
Відомості про версію: CMake 2.8.7 на Linux (Kubuntu 12.04) з GCC 4.6.3