我的文件夹结构是
├── 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
执行的,所以它无法读取相对路径中的图像。
如何设置某些内容的相对路径,以便可执行文件可以读取图像? (我不想使用绝对路径)
答案 0 :(得分:0)
我以相反的方式解决了这个问题,方法是将运行时所需的工件复制到构建目录中。也许这也是你的选择。
答案 1 :(得分:0)
您可以使用$ {PROJECT_SOURCE_DIR}来获取路径。