Я совершенно новичок в Qt и CMake.Я выполняю тест Google на моем проекте (cmake и qt), для которого мне нужно проверить соответствие двух изображений.У меня есть папка (за пределами каталога проекта), которая содержит эти изображения.Я хочу получить доступ к этим изображениям, но не используя абсолютный путь.
Примерно так:
imread("home/../../test_images/img1.jpg")
Но я хочу установить общий путь к папке изображений, чтобы любой, кто использует мойПроекту позже нужно будет просто указать путь к папке test_image
относительно своего компьютера, и не нужно вносить изменения в код.
До сих пор я пробовал следующее.
1,Попытался добавить файл ресурса .qrc
и попытался получить доступ к изображениям.(Это не сработало, поскольку папка с изображениями находилась вне каталога проекта.)
Попытался установить переменную Path в настройках среды сборки QT.
Ни один из двух методов не сработал.
Чего я пытаюсь достичь: «Чтобы можно было избежать использования абсолютного пути для изображений, которые я использую, и позволить людям, пытающимся реализоватьмой код, чтобы изменить путь только в одном месте с их собственными местоположениями тестового изображения. "
Редактировать: Ищу способ установки переменной eg.IMG_PATH = "/path/to/image/files"
, которая может быть установлена один раз, и только переменная используется повсеместноисполняемые файлы.Поэтому, когда кто-то клонирует мой проект, ему просто нужно обновить переменную IMG_PATH
, указав путь к расположению своих файлов изображений.Так что теперь переменная IMG_PATH
обновляется везде в остальных частях проекта.
Мой проект Структура:
- -> CMakeList.txt -----> test -------> CMakeList.txt
--------> sample1.cpp
--------> sample2.cpp
--------> main.cpp
Образец 1,2 - это файлы c ++ с разными тестовыми сценариями.Main.cpp запускает все тесты.Как показано ниже:
#include "gtest/gtest.h"
int main(int argc, char** argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Согласно ответу @squareskittles, Как мне структурировать мой main.cpp, чтобы можно было использовать переменную IMAGES_PATH в файлах sample1.cpp и sample2.cpp.
А также при использовании этого метода мои тесты не могут быть вызваны.