我从kubuntu的软件包管理中安装了这个方便的pnglite库。它仅包含一个头文件“ pnglite.h”和一个目标文件“ pnglite.o”。我已经找到了这些文件的位置,但是我不知道如何链接它们。我正在使用netbeans,但不知道如何在其中链接它们。我也不明白如何在控制台上链接它们。
我有一个要测试的测试程序,但收到错误消息“未定义对函数的引用:XXXXXXX”。无论是netbeans还是在控制台上,我都在使用gcc。该头文件位于/ usr / include目录中,目标文件位于/ usr / lib目录中,而我的测试程序位于我的主目录中的编程目录下。
我应该将标头和对象与源文件放在同一目录中吗?还是有一种方法可以将它们从当前位置链接起来?我知道应该可以从当前位置将它们链接起来,我想知道和理解如何做到这一点。
任何帮助将不胜感激 :)
最佳答案
您只需将/usr/lib/pnglite.o
添加到gcc的链接调用中,再加上pnglite
所需的所有共享库(从您的注释中看来,它需要zlib)。例如,如果您的来源在myapp1.c
和myapp2.c
中,则:
gcc -c myapp1.c
gcc -c myapp2.c
gcc -o myapp myapp1.o myapp2.o /usr/lib/pnglite.o -lz