在 CMakeLists.txt 文件中配置 Eigen
config Eigen in CMakeLists.txt file
当我在 CMakeLists.txt 文件中配置 Eigen 库时,如下所示:
cmake_minimum_required(VERSION 3.14)
project(helloworld)
add_subdirectory(tests)
add_subdirectory(deps/eigen)
set(SRC_LIST main.cpp)
add_executable(hello ${SRC_LIST})
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
target_link_libraries(hello eigen)
我收到 cmake 错误
CMake Error at build/deps/eigen/Eigen3Config.cmake:20 (include):
The file
/Users/joe/codecplus/build/deps/eigen/Eigen3Targets.cmake
was generated by the export() command. It may not be used as the argument
to the include() command. Use ALIAS targets instead to refer to targets by
alternative names.
Call Stack (most recent call first):
CMakeLists.txt:9 (find_package)
有人能帮帮我吗?不知道这里出了什么问题。非常感谢。
您使用两种方式同时包含 3d 方项目 (Eigen):
add_subdirectory()
find_package()
这是错误的。诉诸单一方式:
仅 add_subdirectory
:
add_subdirectory(deps/eigen)
# ...
target_link_libraries(hello Eigen3::eigen)
仅 find_package()
:
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
target_link_libraries(hello Eigen3::eigen)
请注意,对于 link,这两种方法都使用 Eigen3::eigen
目标而不是 eigen
。只有这个名称适用于第二种方法,它在 Eigen 用法的文档中进行了描述。
当我在 CMakeLists.txt 文件中配置 Eigen 库时,如下所示:
cmake_minimum_required(VERSION 3.14)
project(helloworld)
add_subdirectory(tests)
add_subdirectory(deps/eigen)
set(SRC_LIST main.cpp)
add_executable(hello ${SRC_LIST})
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
target_link_libraries(hello eigen)
我收到 cmake 错误
CMake Error at build/deps/eigen/Eigen3Config.cmake:20 (include):
The file
/Users/joe/codecplus/build/deps/eigen/Eigen3Targets.cmake
was generated by the export() command. It may not be used as the argument
to the include() command. Use ALIAS targets instead to refer to targets by
alternative names.
Call Stack (most recent call first):
CMakeLists.txt:9 (find_package)
有人能帮帮我吗?不知道这里出了什么问题。非常感谢。
您使用两种方式同时包含 3d 方项目 (Eigen):
add_subdirectory()
find_package()
这是错误的。诉诸单一方式:
仅
add_subdirectory
:add_subdirectory(deps/eigen) # ... target_link_libraries(hello Eigen3::eigen)
仅
find_package()
:find_package(Eigen3 3.3 REQUIRED NO_MODULE) target_link_libraries(hello Eigen3::eigen)
请注意,对于 link,这两种方法都使用 Eigen3::eigen
目标而不是 eigen
。只有这个名称适用于第二种方法,它在 Eigen 用法的文档中进行了描述。