Cmake: сделать статическую библиотеку и использовать в других проектах - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужно сделать библиотеку test и использовать ее в других проектах #include <libraryname>

В проекте test:

CMakeLists.txt

...
add_library(libtest STATIC lib.h lib.cpp)
set_target_properties(libtest PROPERTIES PUBLIC_HEADER lib.h)

install(TARGETS libtest
        PUBLIC_HEADER DESTINATION include
        RUNTIME DESTINATION bin
        ARCHIVE DESTINATION lib
        LIBRARY DESTINATION lib)
...

В проекте testUseLibrary:

CMakeLists.txt

...
add_executable(project main.cpp)
target_link_libraries(project PUBLIC libtest)
...

main.cpp

#include <libtest> // error 

int main() {
    return 0;
}

В проекте testUseLibrary #include<libtest> не видит библиотеку.

1 Ответ

0 голосов
/ 09 апреля 2019

Вам необходимо использовать target_include_directories, чтобы указать каталоги включения для вашей цели.В этом случае каталог, в котором находится libtest.

...