CMake:制作静态库并在其他项目中使用

时间:2019-04-09 20:38:16

标签: c++ cmake static-libraries

我需要制作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 :(得分:0)

您需要使用target_include_directories为目标指定包含目录。在这种情况下,libtest所在的目录。