2011-05-03 79 views
0

大家好 我有聯繫Tcl和Tk靜態如下,同時與 GCC連接443 /xxx/tcl_libs/8.5.9/lib/libtk8.5.a/XXX/tcl_libs/8.5.9/lib目錄/ libtcl8.5.a問題在動態上TCL庫鏈接

但是當我試圖動態如下 -L/xxx/tcl_libs/8.5.9/lib/ -ltcl8.5 -L/xxx/tcl_libs/8.5.9/lib/ -ltk8.5

掛靠我收到以下錯誤

/tools/linux64/gcc-4.4.3/bin/../lib/gcc/x86_64-unknown-linux-gnu/ 4.4.3/../../../../x86_64-unknown-linux-gnu/bin/ld: tkMain.o: in function main:../../..//tkMain.c:33: error: undefined reference to 'TclInitSubsystems'

有一點,當我試圖鏈接tcl靜態tk動態它的作品。 I 通過ldd對其進行了檢查。 請幫忙。

+0

這很奇怪。我無法在Tk 8.5.9源代碼樹(它是一個Tcl庫內部函數)中找到對該函數的任何引用。你確定你正在編譯正確的代碼嗎? – 2011-05-03 10:00:27

+0

靜態鏈接工作正常 – SaurabhS 2011-05-03 10:02:36

+0

靜態鏈接不能正確執行隱私規則。問題是Tk不應該直接調用這個函數。您編譯的代碼不是您鏈接的代碼。這是個壞消息。 – 2011-05-03 10:06:13

回答

0

嘗試將它們移動到/ usr/lib以查看它是否是路徑規範問題。如果這樣做的話,你需要檢查你是如何指定ld路徑的。

+0

My LD_LIBRARY_PATH包含tcl_lib路徑 – SaurabhS 2011-05-03 10:30:46