【发布时间】:2011-05-13 17:45:55
【问题描述】:
我有一个包含多个源文件和多个头文件的 c++ 项目。我想提交我的项目参加需要单个源文件的编程竞赛。是否有自动将所有文件折叠成单个 .cpp 文件的方法?
例如,如果我有 a.cpp、a.h、b.cpp、b.h 等,我想获得一个可以成功编译和运行的 main.cpp。如果我手动执行此操作,我可以简单地合并头文件并将源文件彼此附加吗?外部变量、包含依赖项和前向声明是否存在陷阱?
【问题讨论】:
-
所有答案都“避免”了这个问题。我无法压缩我的项目,因为在线评委希望单个 cpp 文件能够编译和运行。
-
解决办法是换个法官。法官应该关心找到一个 makefile 以及从 makefile 输出什么(例如,可执行文件的名称)。但是,当然,这对您来说并不舒适。
-
我的建议:为 VC 2015 使用像 /E 这样的编译器选项,只执行预处理器。工作原理:生成一个 .cpp 文件,其中包括项目的所有 .cpp 文件
#include "a.cpp" #include "b.cpp" ...(没有 .h 文件!)。然后使用 /E 选项编译这个单一的 .cpp 文件。结果 (stdout) 是一个包含整个项目的 .cpp 文件。这不方便,输出也不是真正的美。但是,它有效。
标签: c++