Mac的数学库和POSIX实时扩展

时间:2016-06-06 06:52:09

标签: macos clang ld cc

虽然我是一个新手,但我试着解释一下我的问题。 我在Mac上并使用命令行来构建可执行文件。编译命令在Ubuntu上成功运行。

cc   program.o file1.o file2.o file3.o file4.o -lm -lrt -o program
ld: library not found for -lrt
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [program] Error 1

如果我使用-v命令运行,我会得到以下内容:

Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.11.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -o program program.o file1.o file2.o file3.o file4.o -lm -lrt -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/lib/darwin/libclang_rt.osx.a
ld: library not found for -lrt
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何提示?

我在this post中找到了 -lm -lrt 的含义,但仍无法找到解决方案。

更新1:根据this link -lrt 不适用于Mac。

更新2:我找到了两种可能的解决方案:(a)要么完全删除标志,要么(b)使用 -lSystem.B 。实时扩展似乎在libSystem.B.dylib中,如here所述。

0 个答案:

没有答案