我正在研究从互联网上下载的C项目。 我试图添加一些函数,其中Eigen将用于线性代数。
为此,我将以下行添加到CMakeLists.txt:
PKG_CHECK_MODULES(EIGEN3 REQUIRED eigen3)
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS})
LINK_DIRECTORIES(${EIGEN3_LIBRARY_DIRS})
ADD_EXECUTABLE(main main.c)
TARGET_LINK_LIBRARIES(main ${EIGEN3_LIBRARIES})
运行cmake时没有错误。然后制作
问题是当我尝试在其中一个c函数中包含<Eigen/Dense>
时,我在尝试制作时遇到以下错误:
/usr/include/eigen3/Eigen/Core:28:19: fatal error: complex: No such file or directory #include <complex>
Eigen/Dense
包括Eigen/Core
,Eigen/Core
包括<complex>
我认为只是找不到正确的目录来查找complex
...如何让它看起来那样?
答案 0 :(得分:1)
C ++库中的Eigen,而您的应用程序源是C文件(main.c
)。由于它具有.c
扩展名,因此CMake将其威胁为C源并使用C编译器,后者不了解C ++标准库(<complex>
)。将main.c
重命名为main.cpp
。