我的文件夹结构如下: Project/Libraries/Math,Project/Libraries/Math2。
在项目文件夹中,我有包含以下内容的main.cpp和CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
project (CppMain)
add_executable(CppMain main.cpp)
include_directories(${CMAKE_CURRENT_SOURCE_DIR))在Math文件夹中有头文件MyVectors.h,在Math2文件夹中有MyMatrices.h,我希望将其包含在main.cpp文件中,其工作方式如下:
#include "Libraries/Math/MyVectors.h"
#include "Libraries/Math2/MyMatrices.h"问题是头文件MyVectors.h也以同样的方式包含了头文件MyMatrices.h,但是链接器找不到它。我可以在CMakeLists中修改什么来解决这个问题?
发布于 2016-03-31 15:55:53
这似乎是相对路径的经典案例。您这样做是为了将文件包含在main.cpp中
#include "Libraries/Math/MyVectors.h"
#include "Libraries/Math2/MyMatrices.h"为了使文件能够访问父目录,您可以使用../,应该在MyVectors.h中引入以下几行
#include "../Math2/MyMatrices.h"这意味着什么?您的文件MyVectors.h在Math文件夹中,当您使用../时,它会将您带到Math的父目录,即Libraries。在那里,您可以简单地按照路径找到所需的目录。
我在另一个问题上可以找到关于这个答案的更多细节:https://stackoverflow.com/a/35910234/2555668
https://stackoverflow.com/questions/36327125
复制相似问题