所以我一直在研究大学实验室计算机上的一个项目,我希望能够在我的笔记本电脑上在家里工作。我的笔记本电脑运行ubuntu 11.10。
我用过
sudo apt-get install gnome-core-devel build-essential libgtk2.0-dev libgtk2.0-doc devhelp
这就完成了。
然而,当我尝试编译我的程序时,它给了我一堆
对[所有gtk函数]的未定义引用
这里发生了什么?我究竟做错了什么? 程序在实验室计算机上编译良好。 makefile在这里http://pastebin.com/H7Pi55NQ
答案 0 :(得分:2)
库参数现在应该在您要链接的文件之后或者被忽略:
$(CC) -o mainout main.o draw.o floyds.o simpletools.o graph.o tads.o bucket.o $(LIBS)
原因:默认情况下,U11.10中新版本的GCC会为链接器传递--as-needed
开关。这意味着如果在命令行中它之前的任何内容不需要库,则会忽略它。如果使用--no-as-needed
链接器开关,则可以更改此行为。