我正在使用Visual Studio 2017,并使用C ++进行编码。我的代码有时从.json文件读取,但收到一条错误消息,指出找不到该文件。我假设这是因为cmake无法找到文件。 .json位于cmake文件所在目录的子目录中。我已经看到了很多解决方案,这些解决方案涉及包含具有相对路径的源文件,但是涉及非源文件。
如何使用cmake和相对路径包含数据文件?预先感谢!
编辑:很抱歉,最初没有包含更多信息!目录结构如下:
在不同目录中有2个CMakeList.txt文件,而我想在我的C ++代码中使用的包含.JSON文件的子目录位于最低级别的目录中。
当前,CMakeList.txt B使用:
add_executable(execName ${SOURCE_FILES})
生成可执行文件。
我试图将那条线修改为:
add_executable(execName ${RELATIVE_PATH_TO_JSON_FILES} ${SOURCE_FILES})
,但不幸的是,这没有用。
答案 0 :(得分:0)
作为快速技巧,您可以添加
add_definitions("-DPATH_TO_JSON=\"${CMAKE_SOURCE_DIR}/path/to/json.txt\")
到您的CMakeLists.txt。之后,您可以在C ++代码中使用PATH_TO_JSON
定义。
如果希望您的应用在安装后能够访问文件,则应在CMAKE_INSTALL_PREFIX
而不是CMAKE_SOURCE_DIR
上进行操作。
答案 1 :(得分:0)
include_directories(${CMAKE_SOURCE_DIR}/path/to/json)