|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
在UNIX下用gcc編譯的問題?
出現報錯如下:undefined first referenced
如何解決此問題。急急
謝謝! |
在UNIX下用gcc編譯的問題?
把詳細報錯信息貼出來
是不是調用庫函數了? |
在UNIX下用gcc編譯的問題?
調用了庫函數,庫函數中包含了函數:aaa,bbb,ccc,ddd
出現報錯如下:
Undefined first referenced
symbol in file
aaa /a/tmp/cc1.o
bbb /a/tmp/cc1.o
ccc /a/tmp/cc1.o
ddd /a/tmp/cc1.o
id: fatal:Symbol referencing errors.No output written to testone.exe
如何解決此問題?
謝謝! |
在UNIX下用gcc編譯的問題?
如果是同文件的函數,可能是你沒有申明
如果是調用庫中的,你看看編譯的時候有沒有-l進去 |
在UNIX下用gcc編譯的問題?
是調用庫中函數,我編譯的時候有沒有-l進去,-l的命令格式
是什麼?
請舉一個例子。 |
在UNIX下用gcc編譯的問題?
gcc -o outfile sourcefile.c -L/lib/path -lname
要把sourcefile.c防在-lname前面
庫文件的名稱為
libname.a(靜態庫)
libname.so/sl(動態庫)
注意-l[b]name[/b] |
在UNIX下用gcc編譯的問題?
文件one.c在當前路徑下 ,one.c的上級lib目錄中下有庫文件liba.a
編譯如下:
gcc -o one.exe one.c -L ../lib/liba.a
執行完後一樣的錯誤提示,是寫的格式不對還是路徑錯誤? |
在UNIX下用gcc編譯的問題?
gcc -o one.exe one.c -L../lib -la
試一下!
或者
gcc -c one.exe one.c -l../lib/liba.a
另外,你有沒有仔細看我上面寫的用法啊!!!!! :evil: |
在UNIX下用gcc編譯的問題?
-lname 還不明白
如:gcc -o one.exe one.c -L../lib -la
-l 後面帶什麼,-la 中 a 代表什麼?
謝謝 |
在UNIX下用gcc編譯的問題?
a代表什麼?!!?
lib[b]a[/b].a中的[b]a[/b]
你不是說你的庫文件是liba.a
那麼編譯的時候只需要-la就可以了
即庫文件為lib[b]name[/b].a
編譯時只需要-l[b]name[/b]即可 |
在UNIX下用gcc編譯的問題?
如果你的原文件真的是one.c,庫文件真的是../lib/liba.a的話
原模原樣的執行
gcc -o one.exe one.c -L../lib -la
試一下!!!! |
在UNIX下用gcc編譯的問題?
L後面別留空格 |
在UNIX下用gcc編譯的問題?
gcc -o one.exe one.c -L../lib -la
路徑是對的,但還是沒有發現庫文件,提示如下:
id: fatal: library -la: not found
有更好的方法處理嗎?
謝謝! |
在UNIX下用gcc編譯的問題?
gcc -o one.exe one.c ../lib/liba.a
試一下 |
在UNIX下用gcc編譯的問題?
既然是找不到庫
那就在.profile裡面把路徑加上吧 |
在UNIX下用gcc編譯的問題?
如何在.profile裡面把路徑加上
請簡要描述。 |
在UNIX下用gcc編譯的問題?
-->
沒那麼簡單吧!
gcc -o one.exe one.c ../lib/liba.a
沒試一下嗎? |
在UNIX下用gcc編譯的問題?
執行了下面語句:
gcc -o one.exe one.c ../lib/liba.a
還是找不到庫.
還有高招請支出。 |
在UNIX下用gcc編譯的問題?
如果是連接的話
應該是-la -L(liba 所在路徑) |
在UNIX下用gcc編譯的問題?
執行命令:gcc -o one.exe one.c -la -L../lib
一樣的報錯,沒有找到庫。
有成功的例子請舉一個。
或是抱錯的原因是? |
| |