在OSX上设置链接器(ld)的包含目录

时间:2015-12-17 10:20:08

标签: macos linker include-path

我在链接已编译的程序时遇到问题(有关详细信息,请参阅github repo。)

osx特定的makefile部分在这里:

CFLAGS  = -v -arch x86_64  -Wall -fPIC -O2 -I./include $(OPTS)
LDFLAGS = -v -arch x86_64  -lpthread /usr/local/lib/libportaudio.a -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon

EXECUTABLE ?= squeezelite-osx

include Makefile

编译工作正常,但在链接过程中它失败了:

Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.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 squeezelite-osx main.o slimproto.o buffer.o stream.o utils.o output.o output_alsa.o output_pa.o output_stdout.o output_pack.o decode.o flac.o pcm.o mad.o vorbis.o faad.o mpg.o dsd.o dop.o dsd2pcm/dsd2pcm.o process.o resample.o -lpthread /usr/local/lib/libportaudio.a -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon -lFLAC -lmad -lvorbisfile -lfaad -lmpg123 -lsoxr -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 -lFLAC
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [squeezelite-osx] Error 1

找不到的库位于文件夹/usr/local/include中,我想我必须将此路径添加到链接器的包含路径中。

如何将路径/usr/local/include添加到链接器的包含路径?

1 个答案:

答案 0 :(得分:1)

链接器不使用包含文件;这是编译器(实际上是预处理器,但让我们保持简单)。

相反,您需要告诉链接器它应该使用/usr/local/lib选项查看-L

-L/usr/local/lib

注意:您可以为链接器提供多个-L选项。