Предположим, что я пишу код для чтения из файла и печатаю его содержимое, и я так часто меняю его содержимое, что мне нужно, чтобы он был видимым из представления инструмента проектов. Проблема заключается в том, что KDevelop заставляет меня создавать код в отдельной папке (т.е. Создать папку). Таким образом, структура проекта выглядит следующим образом.
--> Project Folder
|
--> code.cpp
--> file.txt
--> build
|
--> code (exe file)
Теперь создание и выполнение проекта не будет работать так, как ожидалось, потому что file.txt
не находится рядом с исполняемым файлом, поэтому он не может прочитать его содержимое.
Перемещение file.txt
в папку сборки не будет работать, поскольку оно исключает его из представления инструмента проекта в KDevelop (т.е. я не могу получить доступ к файлу из левой панели в KDevelop).
Создание ярлыка файла file.txt и перемещение его в папку сборки, чтобы файл был помимо исходного кода, и его ярлык находится в папке с установкой, но для каждого раза, когда я хочу переименовать файл, мне нужно создать новый ярлык или переименовать папку в папке сборки.
Что мне делать? Я думаю, что это может быть обработано одним из двух способов.
Построение проекта в той же папке, что и исходный код и file.txt. Но KDevelop не позволит мне сделать это, создавая сообщение об ошибке The selected build directory is not empty
.
Позвольте мне добавить текстовый файл в представление инструмента "Проекты", не физически находясь внутри папки проекта. Таким образом, я могу создать файл внутри папки сборки и получить доступ к нему или изменить его из представления инструмента "Проекты", но, похоже, в KDevelop нет возможности для этого.
Есть ли предложения? Я пробовал QtCreator, и это позволяет мне делать то и другое.
Обычный способ обработки этого случая - использовать дополнительный шаг установки после сборки. На этом этапе окончательные двоичные файлы из каталога сборки и дополнительные файлы из исходного каталога копируются в третье место.
Как это достигается, зависит от используемой системы сборки.
add_custom_command(TARGET MyProject PRE_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/file.txt ${CMAKE_BINARY_DIR}/file.txt)
с заменой MyProject
и file.txt
с реальными значениями. Благодарю.