快板5.0 -为什么我得到链接器错误

Allegro 5.0 - why am I getting linker errors?

本文关键字:链接 错误 为什么 快板      更新时间:2023-10-16

我最近从源代码编译了Allegro-5.0(按照wiki的说明)。在这个过程中我没有得到任何错误,所以我认为它进行得很顺利。然而,即使是最小的测试程序,我也会得到链接器错误:

//test.cpp
#include <allegro5/allegro.h>
int main()
{
    al_init();
    return 0;
}

我正在编译

g++ `pkg-config --libs allegro-5.0` test.cpp -o test

但我总是得到

/tmp/ccVmmERa.o: In function `main':
test.cpp:(.text+0xf): undefined reference to `al_install_system'
collect2: error: ld returned 1 exit status

(pkg-config返回-L/usr/local/lib -lallegro,这似乎没有任何问题)

另外,我可以用给定的makefile编译示例,所以库似乎没有任何问题。我只是想做与makefile相同的事情来使它工作,但我根本不理解它(我几乎不能自己写简单的)。

哦,我用的是Ubuntu 11.10和gcc 4.7,虽然我不认为这和它有什么关系。

那么-为什么会发生这种情况,我该如何解决它?

将lib放在命令行最后:

g++ test.cpp -o test `pkg-config --libs allegro-5.0`

链接时,文件和库的顺序很重要。