cmake在读取文件时设置路径

时间:2017-07-17 03:20:24

标签: c++ makefile path cmake g++

我的文件夹结构是

├── build
│   ├── ..
│   └── Makefile
├── CMakeLists.txt
├── main.cpp
├── test.hpp
└── yuefei3.jpg

在主文件中,我使用相对路径来读取图像:

 cv::Mat img = cv::imread("./yuefei3.jpg");

这是我的CMakeLists.txt

cmake_minimum_required(VERSION 2.6) 
project(main) 

find_package(OpenCV REQUIRED) 
add_executable(main main.cpp) 

target_link_libraries(main ${OpenCV_LIBS})    

但是,因为可执行文件是从build执行的,所以它无法读取相对路径中的图像。

如何设置某些内容的相对路径,以便可执行文件可以读取图像? (我不想使用绝对路径)

2 个答案:

答案 0 :(得分:0)

我以相反的方式解决了这个问题,方法是将运行时所需的工件复制到构建目录中。也许这也是你的选择。

答案 1 :(得分:0)

您可以使用$ {PROJECT_SOURCE_DIR}来获取路径。