Хотя я новичок, я пытаюсь объяснить свою проблему. Я на 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)
Любой намек?
Я нашел в это сообщение, что - lm -lrt означает, но так и не смог найти решение.
Обновление 1: Согласно эта ссылка -lrt недоступна для Mac.
Обновление 2: я нашел два возможных решения: (а) либо полностью удалить флаг, либо (б) вместо этого использовать -lSystem.B. Расширения реального времени находятся в libSystem.B.dylib, как объяснено здесь.
ld: library not found for -lrt
. Это означает, что компоновщик (ld
) не смог найти библиотеку, предоставляющую расширения реального времени POSIX. Либо он не установлен, либо вы должны указать его путь с опцией-L
. - person mouviciel   schedule 06.06.2016