在GNU c ++编译器中运行一个包含多个源文件的程序

时间:2012-06-22 11:29:22

标签: c++ c compilation gnu

我在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 ...中的单个程序中使用多个文件。

感谢提前

3 个答案:

答案 0 :(得分:3)

“多个文件”的技术术语是 translation units

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),并希望减少构建时间。

答案 1 :(得分:2)

最简单的方法是在gcc

的命令行上精确确定两个文件
gcc file1.c file2.c

答案 2 :(得分:2)

要进行预处理和编译:

gcc -c FILE1.c
gcc -c FILE2.c

然后,链接:

gcc -o EXECUTABLE FILE1.obj FILE2.obj

或者,您可以一步完成两项任务:

gcc -o EXECUTABLE FILE1.c FILE2.c

如果是C ++程序,则将gcc替换为g++,将.c替换为.cpp

您不感兴趣,但为了以后找到您问题的类似读者的利益,FILE1.cpp可能会被命名为FILE1.cc等,FILE1.obj可能被命名为{{ 1}},取决于读者的平台。

您可能会感兴趣的是,根据您使用的shell,您可能需要将FILE1.o等选项写为-o