簡體   English   中英

如何指導編譯器使用某個庫?

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

我正在嘗試根據本指南http://tayyabnaseer.blogspot.com.tr/2012/05/installing-skeltrack-on-ubuntu.html編譯skeltrack

我成功編譯並安裝了前兩個庫。 但是,當涉及到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

我在Ubuntu 13.10 32位平台上。 我在網上搜索了錯誤,然后得出結論,我的glib 2.32不包含該功能。 我成功編譯並安裝了glib 2.38。 但是鏈接程序正在尋找舊的glib 2.32庫。 這是我計算機中的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

我怎樣才能告訴鏈接器使用它正在尋找的正確libgio?

通過查看以下網絡鏈接,我弄清楚了如何鏈接特定的庫:

具體來說,將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

做到了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM