|
大家好,我最近在学习Linux环境下的C语言开发。碰到了一个关于静态库的问题:
前两天把自己常用的一些小函数编程了一个静态库(名称为: libmisc.a ),然后另外写了一个可执行程序,在它的main函数中调用了该库里的名为trim的函数。
然后在终端里使用gcc进行build,发现一个比较有意思的现象:
第一次尝试:
- [root@myserver]gcc -Wall -O2 -o a.exe -static -L/share/test a.c libmisc.a
复制代码
结果是build成功,程序也执行正常。
第二次尝试:
- [root@myserver]gcc -Wall -O2 -o a.exe -static -L/share/test -lmisc a.c
复制代码
结果是在link时出错,出错消息如下:
- /tmp/cc4l4jTX.o: In function `main':
- a.c:(.text+0x74): undefined reference to `trim'
- collect2: ld returned 1 exit status
复制代码
一开始我以为-l后面的跟的库名写错了,所以后来就尝试用了 -llibmisc,但是在这种情况下它就改报错说是找不到libmisc了。
关于以上的现象,我没有办法解释,希望这里的朋友能帮帮忙,帮我指出问题在哪里,谢谢~ |
|