Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 连接C++;使用不带标准库的预处理器的源文件包括_C++_Gcc_C Preprocessor - Fatal编程技术网

C++ 连接C++;使用不带标准库的预处理器的源文件包括

C++ 连接C++;使用不带标准库的预处理器的源文件包括,c++,gcc,c-preprocessor,C++,Gcc,C Preprocessor,我有一个C++项目,我想将所有源文件合并到一个main.cpp文件中。似乎预处理器非常适合此任务,因此我运行了以下命令: g++ -E main.cpp > main.i 这生成了一个巨大的预处理源文件,其中包括丑陋的编译器工具链库。有没有一种方法可以只连接项目输入源文件而不取消对所有尖括号包含的注释,如#include?在POSIX系统上,您可以使用shell程序cat连接文件: cat list.cpp of.cpp files.cpp | g++ -xc++ - 使用所有源文件

我有一个
C++
项目,我想将所有源文件合并到一个
main.cpp
文件中。似乎预处理器非常适合此任务,因此我运行了以下命令:

g++ -E main.cpp > main.i

这生成了一个巨大的预处理源文件,其中包括丑陋的编译器工具链库。有没有一种方法可以只连接项目输入源文件而不取消对所有尖括号包含的注释,如
#include

在POSIX系统上,您可以使用shell程序
cat
连接文件:

 cat list.cpp of.cpp files.cpp | g++ -xc++ -

使用
所有源文件
时,假设所有标题链接到一个cpp或多个cpp文件?@JVApen:链接在一起的整个项目,包括
*.h
标题和
*.cpp
源文件。“整个项目”?如何知道哪些文件属于项目?为什么要这样做?这违反了常识。
main
中的
#include
语句通常指头文件(
foo.h
),而不是源文件(
bar.cpp
)。首先,这两组文件通常不会排成一行。其次,连接源文件可能不会生成可编译文件。整个方法似乎都是错误的。似乎一个简单的
cat
将源代码文件串联起来是错误的…@以什么方式连接?它不会遵循包含顺序。此外,您的命令不会产生连接结果的正确输出。它在程序:13:3:error中打印类似于
:13:2:error:trassed'#'include'的内容:include'不命名类型