命令用.a文件编译c文件

我有几个.c文件和一个.a目标文件。 我应该使用什么命令与gcc编译到一个exe文件? 如果我们使用makefile,它将如何?

Solutions Collecting From Web of "命令用.a文件编译c文件"

.a文件是一个已编译的库。 您将.c文件编译为.o文件,然后使用链接程序将.o与.a链接以生成可执行文件。

对于简单的情况,你可以这样做:

gcc -o maybe.exe useful.a something.c 

非平凡项目的Makefile通常首先调用gcc来将每个.c文件编译为一个.o对象。

 gcc -c something.c 

然后,他们调用链接器(现在经常使用gcc作为它的包装器),链接到一个输出可执行文件的.o和.a文件列表。

 gcc -o maybe.exe useful.a something.o 

还要注意,对于大多数已安装的库,通常不显式指定.a文件,而是指定-lhandy,这将是“尝试在配置的(或指定的-L)搜索目录中找到名为libhandy.a的东西的简称“

*.a是一个静态库,不是动态的( *.dll在Windows和*.so在Linux中)

 gcc -L<here comes the library path> -l<library name> 

例如,你应该使用当前路径中的libname.a文件:

 gcc *.c -L. -lname -o myprogram.o 

从man (把man gcc放在shell命令提示符下)

您可以混合选项和其他参数。 大多数情况下,您使用的顺序无关紧要。 当您使用相同种类的多个选项时,顺序很重要; 例如,如果多次指定-L,则按指定的顺序搜索目录。 另外,-l选项的位置也很重要。