我已经苦苦挣扎了相当长一段时间,我的关于CMake的尝试只带来了一些笨拙的解决方案,我很肯定这些方案是不正确的。
我创建了一个库,包含以下几个文件:
-libfolder
-codepart1folder
-CMakeLists.txt
-codepart1.cpp
-codepart1.hpp
-codepart2folder
-codepart3folder
-lib.cpp
-lib.hpp
-CMakeLists.txt
我写了一个CMakeLists文件来编译库(经过一些实验),我可以生成一个lib.a文件。现在,我想将这个代码作为库包含到其他项目中,并通过lib.hpp中的接口访问它。就目录结构和需要放入根项目的CMakeLists.txt而言,最好的方法是什么?
我当前的尝试是将-libfolder添加为当前项目的子文件夹,并添加以下命令:
include_directories(${PROJECT_SOURCE_DIR}/libfolder)
link_directories(${PROJECT_BINARY_DIR}/libfolder)
add_subdirectory(libfolder)
target_link_libraries(project lib)
当我运行make时,库编译得很好,但是当project.cpp编译时,它抱怨找不到codepart1.hpp(它包含在lib.hpp中,从project.cpp包含)。
我怀疑这样做可能是错误的方式,但我无法浏览CMake文档并找到有关设置此类项目的良好教程。请帮忙,CMake大师们!