今天遇到了一个问题,在调试IGRF的地磁场模型,以便能利用。改得差不多的程序,我想重建一个文件,可是运行的时候老报错。我就纳闷了,怎么会错呢?
我把能跑的原文原封不动的复制过来,发现用gcc跑还是出错,然后我就不知道怎么办了?
回头一想是不是文件后缀名的问题,然后一查,一改,能跑了,还真是后缀名的问题。
下面是C和c后缀的区别:
GCC 可同时用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀名来判断是 C 程序还是 C++ 程序。在 Linux 中,C 源文件的后缀名为 .c,而 C++ 源文件的后缀名为 .C 或 .cpp。
但是,gcc 命令只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库连接(可以使用-lstdc++来加载c++库)。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。
所以有时使用gcc 编译.c程序,而在.c程序中调用了用户c++静态库时会出错,而将后缀名改成.C就没问题了.