我正在尝试使用以下命令安装memcached:
brew install memcached
Run Code Online (Sandbox Code Playgroud)
这样做会导致自制程序无法创建符号链接:
The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local
Run Code Online (Sandbox Code Playgroud)
救命!
我现在已经在两台计算机上重现了这种症状,自从将计算机升级到macOS Mojave以来,cmake似乎不再寻找/usr/local/lib(或更恰当地是$(brew --prefix)/lib)由Homebrew提供的库。
尽管有一些方法可以避免这种情况(例如,使用EXECUTE_PROCESS; 搜索结果,然后将结果添加到LINK_LIBRARIES(...)命令中),但都没有理想的方法。莫哈韦沙漠(Mojave)发生了什么变化以打破这种行为?
临时解决方法是将以下内容添加到CMakeLists.txt:
# WARNING: Don't hard-code this path
LINK_DIRECTORIES(/usr/local/lib)
Run Code Online (Sandbox Code Playgroud)
我已经尝试brew doctor并更新了所有自制软件包,但无济于事。
cmake(make)显示的特定错误是:
ld: library not found for -l<somelib>
Run Code Online (Sandbox Code Playgroud)