Почему вывод сохраняется в cmake-build-debug - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть проект C ++, и я хочу получить доступ к некоторым данным, которые я сохранил в папке images. Я попытался из calibration.cpp сделать:

std::string path = "images/*.jpg";
cv::glob(path, images);

Но это дало мне ошибку, не обнаружив каталог. Чтобы определить, в какой директории смотрелось выполнение, я создал фиктивный текстовый файл и сохранил его, чтобы увидеть, куда он был сохранен. Он сохраняется в cmake-build-debug , которая является папкой, автоматически создаваемой при сборке CMakeLists.txt в CLion. Затем, если я помещу свою папку images в cmake-build-debug , она будет видна, но я хочу, чтобы папка с изображениями находилась в родительском каталоге.

  • Как мне установить текущий каталог для поиска файлов оттуда?

Мой проект выглядит так:

Camera Motion
-- cmake-build-debug
----     ...
-- images
---- image1.png
-- CMakeLists.txt
-- calibration.cpp
# CMakeLists.txt
cmake_minimum_required(VERSION 3.15)
project(CameraMotion)

set(CMAKE_CXX_STANDARD 14)

find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(CameraMotion calibration.cpp)
target_link_libraries(CameraMotion ${OpenCV_LIBS})

# calibration.cpp
#include <iostream>

int main()
{
    std::ofstream myfile;
    myfile.open("output.txt");
    myfile << "output\n";
    myfile.close();
    std::string path = "images/*.jpg";

    cv::glob(path, images);
}

Когда я запускаю проект в CLion, он говорит:

====================[ Build | CameraMotion | Debug ]============================
/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/hectoresteban/CLionProjects/CameraMotion/cmake-build-debug --target CameraMotion -- -j 4
[100%] Built target CameraMotion

1 Ответ

0 голосов
/ 12 апреля 2020

CLion quick CMake tutorial говорит:

Обратите внимание на поле Path Generation, которое указывает местоположение результатов сборки. Папками по умолчанию являются cmake-build-debug для профилей отладки и cmake-build-release для профилей выпуска. Вы всегда можете установить другие места по вашему выбору.

Почему вы хотите объединить каталог сборки и исходный код? Удобнее хранить результаты сборки и источники отдельно. Что, если вы хотите собрать релизную сборку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...