我现在已经在两台计算机上重现了这种症状,自从将机器升级到macOS Mojave以来,cmake
似乎不再存在于Homebrew提供的库的/usr/local/lib
(或更恰当地说是$(brew --prefix)/lib
)中。
尽管有多种方法可以避免这种情况(例如,使用EXECUTE_PROCESS
搜索自制前缀;将结果添加到LINK_LIBRARIES(...)
命令中),但都不是理想的选择。莫哈韦沙漠(Mojave)发生了什么变化以打破这种行为?
临时解决方法是将以下内容添加到CMakeLists.txt
中:
# WARNING: Don't hard-code this path
LINK_DIRECTORIES(/usr/local/lib)
我已经尝试过
brew doctor
并将所有自制程序包更新为无济于事。cmake
(make
)显示的特定错误是:ld: library not found for -l<somelib>
我有asked the question on the Homebrew forums和Apple developer forums。
最佳答案
尝试在OS X Mojave(10.14)下的Django应用中尝试pip install psycopg2
时遇到一个相关(?)问题。我收到以下错误:
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1
我根据自己的需要调整了解决方案。然后,我终于能够运行
pip install psycopg2
。这是命令序列(更新:在项目根目录中,即在您看到manage.py的位置)。第一
sudo chown -R $(whoami) $(brew --prefix)/*
然后
brew reinstall openssl
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip install psycopg2