C++ 如何构建C++;投影到与源文件';他在KDevelop

C++ 如何构建C++;投影到与源文件';他在KDevelop,c++,kdevelop,C++,Kdevelop,假设我正在编写一个代码来读取一个文件并打印它的内容,并且我经常修改它的内容,以至于我需要它在项目工具视图中可见。问题是KDevelop强迫我在一个单独的文件夹(即build文件夹)中构建代码。所以项目结构是这样的 --> Project Folder | --> code.cpp --> file.txt --> build | --> code (exe file) 现在,构建和执行项目将无法按预期工作,因为file.txt不在可执行文件旁边,

假设我正在编写一个代码来读取一个文件并打印它的内容,并且我经常修改它的内容,以至于我需要它在项目工具视图中可见。问题是KDevelop强迫我在一个单独的文件夹(即build文件夹)中构建代码。所以项目结构是这样的

--> Project Folder
 |
 --> code.cpp
 --> file.txt
 --> build 
  |
  --> code (exe file)
现在,构建和执行项目将无法按预期工作,因为
file.txt
不在可执行文件旁边,因此它无法读取其内容

file.txt
移动到build文件夹将不起作用,因为它会将其从KDevelop的项目工具视图中排除(即,我无法从KDevelop的左窗格访问该文件)

创建file.txt的快捷方式并将其移动到build文件夹中,以便该文件位于源代码之外,并且其快捷方式位于build文件夹中即可,但每次我要重命名该文件时,都需要创建新的快捷方式或重命名build文件夹中的快捷方式

我该怎么办?我认为可以用两种方法中的一种来处理

  • 在与源代码和file.txt相同的文件夹中生成项目。但是KDevelop不允许我这样做,因为生成错误消息
    所选的构建目录不是空的

  • 允许我将文本文件添加到“项目”工具视图,而无需实际位于项目文件夹中。通过这种方式,我可以在build文件夹中创建文件,并从Projects工具视图访问或修改它,但是在KDevelop中似乎没有这个选项


有什么建议吗?我尝试过QtCreator,它允许我同时执行这两项操作。

处理这种情况的通常方法是在构建之后使用额外的安装步骤。在此步骤中,生成目录中的最终二进制文件和源目录中的其他文件将复制到第三个位置

如何实现这一点取决于您使用的构建系统

  • 与CMake
  • 用QMake

假设您使用的是cmake,我会制定一条规则,在构建项目时将资源复制到构建目录。最后,我用这个命令
add_custom_命令(TARGET MyProject PRE_BUILD command${CMAKE_command}-E create_symlink${CMAKE_SOURCE_DIR}/file.txt${CMAKE_BINARY_DIR}/file.txt)完成了这个任务
用实际值替换
MyProject
file.txt
。谢谢