现在我写了如下程序,编译运行正确
然后我把上述3部分,分别复制到单独的a.c, b.c m.c三个源文件,并用mingw编译如下
3个命令都成功,根据我的理解,最终ablib应该是静态库了,包含了Fa,Fb两个函数.
接下来该怎么编译m.c呢? 这个命令好像不行 gcc -o C:\m.exe -lC:\ablib C:\m.c
我复制试了一下,错误如下
后面那句因为依赖于前一句,所以没试
提示的错误是c:\a.o没有了,是不是被删除了? 你要重新生成这个文件啊
追问对的,我试了,你的命令是对的,我还以为前面的两句都不需要了,看来你这可以。
你能不能解释一下为什么呢,难道说扩展名也会影响?还有,第二句的 大小写l你能不能再解释一下啊?
在写L是指定库所在目录
小写l是指定链接的库文件,gcc要求链接的库文件格式为libXXX.a,-l时,只需要XXX,gcc会自动补相应的前缀lib和后缀.a
必须大小写l配合才能实现最后编译m的功能吗?
你说的只需要XXX是否相当于模糊查询功能?假如有冲突的文件名是否就不管用了?能否再帮忙写一个只需要大写或者小写(如果可能)而且是全路径的命令?
XXX这种不是模糊查询,是确定的,这是规定格式,文件名不会有冲突的,补全后的文件只会在磁盘上有一个
应该可以直接调用全名的但不能用-l 单独写-L是没有意义的,它只是指明库所在的路径,如果库文件就在当前目录下,则可以不写-L
gcc c:\m.c -o m.exe c:\libab.a