Cmake包含目录

时间:2016-03-31 07:42:08

标签: c++ cmake makefile

我有一个像这样的文件夹结构: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中修改什么来解决这个问题?

1 个答案:

答案 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