2013-03-21 76 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被发现。