我有一个像这样的文件夹结构:Project / Libraries / Math,Project / Libraries / Math2。
在Project文件夹中,我有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中修改什么来解决这个问题?
答案 0 :(得分:1)
这似乎是相对路径的经典案例。您已完成此操作以将文件包含在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