问题是继续/重复上一个问题,这个问题没有解决我遇到的问题。
使用make文件编译Eigen是一个步骤任务。但是在Cmake中,你如何添加一个只有标题的库(基本上我只使用Eigen网站中提取的存档文件夹中的Eigen文件夹,而忽略其余的。) 注意:Eigen文件夹有自己的CMakeLists.txt
答案 0 :(得分:0)
您可以使用FindEigen3.cmake。将其放入cmake/Modules
文件夹,并将以下行添加到您的CmakeLists.txt
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
你可以在cmake/FindEigen3.cmake
答案 1 :(得分:0)
今天,当我想使用stb_image.h库时遇到了同样的问题。我是这样解决的:
使用标题作为输入文件来定义库:
add_library(stb_image SHARED stb_image.h)
由于文件没有可识别的文件结尾,因此您必须告诉cmake文件使用的语言(在这种情况下为C):
set_target_properties(stb_image PROPERTIES LINKER_LANGUAGE C)
最后,stb_image需要我定义STB_IMAGE_IMPLEMENTATION
来启用库的编译:
target_compile_definitions(stb_image PRIVATE STB_IMAGE_IMPLEMENTATION)