【问题标题】:CMAKE : How to put absolute path in include directoriesCMAKE:如何将绝对路径放在包含目录中
【发布时间】:2020-10-13 08:42:14
【问题描述】:

首先,如果问题已得到解答,但我找不到任何解决方案,我很抱歉。

我正在尝试用 cmake 编译一个简单的程序。 但我似乎无法包含绝对路径。

我的项目(位于C:/path/to/my/project 以便理解)很简单,带有一个带有头文件的include 目录。但是,我必须在其他地方完全包含另一个目录。

我的include_directories 看起来像这样:

include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include" "C:/path/to/my/other/directory/include")

但是当我这样做时:

get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
  message(STATUS "dir='${dir}'")
endforeach()

要检查我的包含目录,我有以下答案:

-- dir='/c/path/to/my/project/include'
-- dir='/c/path/to/my/project/C:/path/to/my/other/directory/include'

所以cmake 将路径解释为相对于我的项目文件夹。 我如何强制 cmake 将它们解释为绝对的?

我正在使用cmake v3.17.3


编辑

我已经尝试过这样做,但它似乎也不起作用,因为路径没有附加到我的目标的 INCLUDE_DIRECTORIES 属性中。

add_executable(app src1.c src2.c)
target_include_directories(app BEFORE PRIVATE "C:/path/to/my/other/directory/include")

提前谢谢你。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    所以经过一番研究,答案是:

    add_executable(app src1.c src2.c)
    target_include_directories(app BEFORE PRIVATE "/C/path/to/my/other/directory/include")
    

    我所指的路径是错误的,因为我在msys。因此c:/ 应该变成/c/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2023-03-29
      • 2015-03-31
      • 1970-01-01
      • 2014-05-19
      相关资源
      最近更新 更多