OSX中使用ld -static链接时提示找不到-lcrt0.o


这两天在学习链接的相关知识,刚好看到静态链接,于是照着书中示例写了个程序,满心欢喜等着运行结果时,却在编译链接阶段没通过!终端上最后的输出为:

 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -static -arch i386 -macosx_version_min 10.9.0 -o p2 -lcrt0.o main2.o libvector.a
ld: library not found for -lcrt0.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)

刚开始以为是因为在64位系统上编译32位程序(gcc -m32)导致了,于是去掉了这个参数,重新编译链接,还是不行!

没办法了,只能google,找了一番,发现还是有些人遇到类似的情况的,尝试了安装Xcode的命令行工具(Command Line Tools for Xcode),发现还是不行,进一步查找,找到了Apple的这个QA页面:https://developer.apple.com/library/mac/qa/qa1118/_index.html 。。。好吧,要么跟着自己做,要么放弃。。。我不玩了,直接把-static参数去掉,编译通过,完事!

Author: Rex Shen

Created: 2014-07-17 Thu 14:49

Emacs 24.3.1 (Org mode 8.2.7b)

Validate

Leave a comment

Your email address will not be published. Required fields are marked *