在GNU c ++编译器中运行一个包含多个源文件的程序
我在Windows 7操作系统上使用DEV GNU c ++编译器。 我需要知道如何编译具有多个源文件的程序。 这是例子,
#FILE1 void f1() { printf("this is another file under same program"); } #FILE2 int main() { f1(); return 0; }
实际上我需要这个来测试static,extern类说明符如何与多个文件一起使用。 因此,现在只有我必须学习如何在C中的单个程序中使用多个文件。
谢谢你
“多个文件”的技术术语是翻译单元 :
g++ file1.cpp file2.cpp -o program
或者您分开编译和链接
g++ -c file1.cpp -o file1.o g++ -c file2.cpp -o file2.o # linking g++ file1.o file2.o -o program
但这通常没有意义,除非你有一个更大的项目(例如make
)并希望减少构建时间。
最简单的方法是在gcc
的命令行上精确两个文件:
gcc file1.c file2.c
要预处理和编译:
gcc -c FILE1.c gcc -c FILE2.c
然后,链接:
gcc -o EXECUTABLE FILE1.obj FILE2.obj
或者,您可以一步完成两个步骤:
gcc -o EXECUTABLE FILE1.c FILE2.c
如果它是一个C ++程序,那么用g++
替换gcc
,用.cpp
替换.c
。
您不感兴趣,但为了以后找到您问题的类似读者的利益, FILE1.cpp
可能被命名为FILE1.cc
等,而FILE1.obj
可能被命名为FILE1.o
,具体取决于读者的平台。
您可能会感兴趣的是,根据您使用的shell,您可能必须编写-o
as /o
类的选项。