2017-01-06 4 views
0

Я создаю проект C++ с CMake. Я хочу, чтобы упаковать настройки по умолчанию, написанный на JSON и доступ, что внутри приложения, но я не мог получить файл ...Возможно ли получить доступ к пакетному/вложенному файлу из кода C++?

Код:

string filename = "settings.json" 
ifstream in(filename, std::ios::in); 

string line, jsonString; 
while(std::getline(in, line)) { 
    jsonString += line + "\n"; 

    *text = jsonString; 
} 

CMake:

add_custom_command(
     TARGET ${EXE_NAME} 
     POST_BUILD 
     COMMAND ${CMAKE_COMMAND} -E copy 
     ${PROJECT_SOURCE_DIR}/settings.json ${PROJECT_BINARY_DIR}/${EXE_NAME} 
     ) 

Я думаю, что проблема, вероятно, на пути, но я не мог ее решить.

+0

Значит, файл 'settings.json' не скопирован в папку сборки после выполнения этой команды пользовательской сборки? – drescherjm

+0

Я был в замешательстве .. Это не удалось ... Ошибка копирования файла '" /Users/***/settings.json "в" /Users/***/cmake-build-debug/***.app /». make [3]: *** [***. app] Ошибка 1 make [3]: *** Удаление файла '***. app 'make [2]: *** [CMakeFiles/***. app .dir/all] Ошибка 2. make [1]: *** [CMakeFiles/***. app.dir/rule] Ошибка 2' – morizotter

ответ

0

Вы можете использовать configure_file для этого:

configure_file(settings.json settings.json COPYONLY) 

Это еще раз скопировать файл, если вы измените его.

Смежные вопросы