简体   繁体   English

如何指导编译器使用某个库?

[英]how can I guide compiler to use a certain library?

I'm trying to compile skeltrack according to this guide http://tayyabnaseer.blogspot.com.tr/2012/05/installing-skeltrack-on-ubuntu.html 我正在尝试根据本指南http://tayyabnaseer.blogspot.com.tr/2012/05/installing-skeltrack-on-ubuntu.html编译skeltrack

I successfully compiled and installed first two libraries. 我成功编译并安装了前两个库。 However when it comes to skeltrack I get followin compilation error: 但是,当涉及到skeltrack时,我得到followin编译错误:

CCLD     test-skeleton
/usr/bin/ld: test-skeleton.o: undefined reference to symbol 'g_file_read'
/usr/lib/i386-linux-gnu/libgio-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

I am on Ubuntu 13.10 32 bit platform. 我在Ubuntu 13.10 32位平台上。 I searched for the error on the net and I came to conclusion that my glib 2.32 doesn't contain that functions. 我在网上搜索了错误,然后得出结论,我的glib 2.32不包含该功能。 I successfully compiled and installed glib 2.38. 我成功编译并安装了glib 2.38。 But linker is looking for old glib 2.32 library. 但是链接程序正在寻找旧的glib 2.32库。 Here are libgio libraries in my computer: 这是我计算机中的libgio库:

 locate libgio-2.0.so.0
 /home/****/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
 /home/****/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3200.3
 /home/****/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgio-2.0.so.0
 /home/****/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgio-2.0.so.0.3200.3
 /home/****/Downloads/ubuntu-core-13.04-core-i386/usr/lib/i386-linux-gnu/libgio-2.0.so.0
 /home/****/Downloads/ubuntu-core-13.04-core-i386/usr/lib/i386-linux-gnu/libgio-2.0.so.0.3600.0
 /home/****/install/lib/libgio-2.0.so.0
 /home/****/install/lib/libgio-2.0.so.0.3800.2
 /usr/lib/i386-linux-gnu/libgio-2.0.so.0
 /usr/lib/i386-linux-gnu/libgio-2.0.so.0.3800.1
 /usr/local/lib/libgio-2.0.so.0
 /usr/local/lib/libgio-2.0.so.0.3600.0
 /usr/local/lib/libgio-2.0.so.0.3800.2

How can I tell the linker to use correct libgio that it is looking for? 我怎样才能告诉链接器使用它正在寻找的正确libgio?

I figured out how to link a specific library after looking at following weblinks: 通过查看以下网络链接,我弄清楚了如何链接特定的库:

Specifically, setting LDFLAGS as, 具体来说,将LDFLAGS设置为

LDFLAGS='-l:/usr/local/lib/libgio-2.0.so.0.3800.2 -l:/usr/local/lib/libgobject-2.0.so.0.3800.2 -l:/usr/local/lib/libglib-2.0.so.0.3800.2' ./configure

did the trick. 做到了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM