【问题标题】:run a program with more than one source files in GNU c++ compiler在 GNU c++ 编译器中运行具有多个源文件的程序
【发布时间】:2012-06-22 11:29:21
【问题描述】:

我在 Windows 7 操作系统上使用 DEV GNU c++ 编译器。我需要知道如何编译具有多个源文件的程序。 这是一个例子,

#FILE1
void f1()
{
   printf("this is another file under same program");
}

#FILE2

int main()
{
   f1();
   return 0;
}

实际上我需要这个来测试静态的外部类说明符如何与多个文件一起使用。所以现在只有我需要学习如何在 C 中的单个程序中处理多个文件。

提前感谢

【问题讨论】:

  • 我猜您需要创建一个项目(在您的 IDE 中)并构建 那个。将这两个文件添加到项目中。我不清楚您实际使用的是什么 IDE。流血/DevC++? C++ 生成器? Embarcadero?
  • 不应该有任何文件包含 main() 方法吗??
  • @A_nto2: 不,你的整个项目只需要一个main()
  • @Thomas:好的,你说得对! :)

标签: c++ c compilation gnu


【解决方案1】:

“多个文件”的技术术语是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)并且想要减少构建时间。

【讨论】:

    【解决方案2】:

    最简单的方法是在gcc的命令行上精确两个文件:

    gcc file1.c file2.c
    

    【讨论】:

    • 请解释一下我到底要做什么...我在 Windows 7 上。
    • @alaminhosain 如何编译单个 cpp 文件?
    • 启动命令提示符 (cmd.exe),切换到包含文件的目录,然后键入上面的命令。
    • @sehe 用键盘 ctrl+f9 打开单个 cpp 文件
    【解决方案3】:

    这样预处理和编译:

    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可以命名为FILE1.o,取决于读者的平台。

    您可能会感兴趣,根据您使用的 shell,您可能必须将-o 之类的选项写成/o

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多