【问题标题】:How to build a C++ project into the same folder as the source file's in KDevelop如何在 KDevelop 中将 C++ 项目构建到与源文件相同的文件夹中
【发布时间】:2014-11-07 09:17:10
【问题描述】:

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

--> Project Folder
 |
 --> code.cpp
 --> file.txt
 --> build 
  |
  --> code (exe file)

现在构建和执行项目将无法按预期工作,因为file.txt 不在可执行文件旁边,因此无法读取其内容。

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

创建 file.txt 的快捷方式并将其移动到 build 文件夹中,以便该文件在源代码之外,并且其快捷方式在 build 文件夹中会这样做,但是每次我想重命名文件时,我都需要创建一个新的快捷方式或重命名构建文件夹中的快捷方式。

我该怎么办?我认为可以通过以下两种方式之一来处理。

  • 在与源代码和 file.txt 相同的文件夹中构建项目。但是 KDevelop 不允许我这样做并产生错误消息 The selected build directory is not empty

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

有什么建议吗?我已经尝试过 QtCreator,它允许我两者都做。

【问题讨论】:

  • 假设您使用的是 cmake,我会制定一个规则,在构建项目时将资源复制到构建目录。关于如何做到这一点存在现有的 SO 问题。

标签: c++ kdevelop


【解决方案1】:

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

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

【讨论】:

  • 最后,我用这个命令add_custom_command(TARGET MyProject PRE_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/file.txt ${CMAKE_BINARY_DIR}/file.txt) 用实际值替换了MyProjectfile.txt。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-06-16
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多