2013-03-21 75 views
1

用於建築x86_64的未定義符號下面的嘗試時,OSX下編譯項目的一部分返回:鏈接錯誤 - 在OSX

gcc -g -pipe -L/Projects/export buf_test.o buf.o -framework CoreFoundation -o buf_test 
Undefined symbols for architecture x86_64: 
    "___assert_rtn", referenced from: 
     _init in buf.o 
     _get in buf.o 
     _put in buf.o 
    "___sprintf_chk", referenced from: 
     _test in buf_test.o 
    "___strcpy_chk", referenced from: 
     _test_data_copy in buf_test.o 
     ___inline_strcpy_chk in buf_test.o 
    "_exit", referenced from: 
     start in crt1.10.6.o 
    "_printf", referenced from: 
     _test in buf_test.o 
    "_puts", referenced from: 
     _test in buf_test.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

幫助,將不勝感激!

+0

考慮用'gcc -v -Wall'替換'gcc'以瞭解更多發生的事情...... – 2013-03-21 17:06:41

+0

由於第三方組件編譯時沒有min OS X版本,我今天遇到了這個問題(例如「 mmacosx版本分鐘= 10.7" )。之前這在小牛隊/ Xcode 5升級之前就行得通了。 – NuSkooler 2013-10-28 20:59:42

回答

0

原來,這是一個與標準庫的庫命名衝突 - 我在/ Projects/export中有一個名爲libSystem.a的庫,它掩蓋了libSystem.dylib被發現。