Каталог вывода файла C++ в Eclipse
Я использую Eclipse в качестве IDE для программирования на C++. В моей системе у меня есть домашний сетевой каталог и раздел данных. Я хочу, чтобы проект хранился в домашнем каталоге (который резервируется нашим администратором), но вычисления должны быть выполнены на разделе данных. Как я могу это сделать?
Я уже выяснил, как изменить расположение сборки под артефактами сборки, но файлы, которые я генерирую в своем коде C++ (например, fstream f; f.open("filename");
) хранятся в каталоге проекта в моей домашней папке.
Одной из возможностей является сборка из Eclipse, а затем запуск двоичного файла из консоли. Но это не так приятно, как просто нажать на кнопку "Выполнить".
Я надеюсь, что кто-то может помочь мне.
2 ответа
Вам нужно найти что-то, что называется "Working Dir/Path" или подобное. (Понятия не имею, как зовут Eclipse)
Обратите внимание, что это также может повлиять на загрузку динамических библиотек.
Другой вариант заключается в том, чтобы в вашей Программе была опция конфигурации, и чтобы ваш код обрабатывал установку путей вдоль строк (не проверено! Рассматривается как псевдокод!)
f.open((path / filename).c_str()); // using boost::filesystem
f.open((path + PATH_SEP + filename).c_str()); // using std::string
Вы открываете файлы в текущем рабочем каталоге. Вы можете либо использовать абсолютные пути при указании имени файла, либо вы можете сделать chdir
перед созданием / открытием файлов. Вам также следует избегать жесткого кодирования имен файлов в коде. Вместо этого вы можете указать имена файлов, используя файлы конфигурации, переменные среды, аргументы командной строки и т. Д. Обратите внимание, что вы также можете указать дополнительные аргументы командной строки в Eclipse, которые будут передаваться вашему исполняемому файлу при отладке.