我是 macOS 新手,在使用 libjpeg 库时遇到问题。
使用brew install jpeg安装后,我什至尝试重新安装。
joshbone@Joshs-Mac-mini ~ % brew reinstall jpeg
==> Downloading https://homebrew.bintray.com/bottles/jpeg-9d.arm64_big_sur.bottl
Already downloaded: /Users/joshbone/Library/Caches/Homebrew/downloads/12e480d7337641afc99230ff2b626197e3206ea378eef8ccbb8b11f587afe7f4--jpeg-9d.arm64_big_sur.bottle.tar.gz
==> Reinstalling jpeg
==> Pouring jpeg-9d.arm64_big_sur.bottle.tar.gz
/opt/homebrew/Cellar/jpeg/9d: 21 files, 1001.2KB
Run Code Online (Sandbox Code Playgroud)
然后我尝试查看是否可以找到该库,我在终端中键入以下命令:“gcc -ljpeg”。这给出了以下输出:
ld: library not found for -ljpeg
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
为什么找不到图书馆?我可以做什么来修复安装?我是否正确使用了这些终端命令?
编辑:我设法在 /opt/homebrew/Cellar/jpeg/9d/lib 下找到符号链接(.dylib)。但是当我运行 gcc -ljpeg -L /opt/homebrew/Cellar/jpeg/9d/lib/ 时,出现以下错误消息:
Undefined symbols for architecture arm64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
为什么找不到图书馆?
它要么不存在,要么不在包含路径中。
我可以做什么来修复安装?
-v按照 gcc 建议使用该标志 ( gcc -ljpeg -v)。您将看到一个-L标志,它会告诉您在哪里寻找库文件(包含路径)。就我而言-L/usr/local/lib,如果我在该目录中查找“jpeg”(ls /usr/local/lib/ | grep jpeg),我会发现libjpeg.dylib它就在那里。
默认情况下,brew 安装在/usr/local/CellarIntel 或/opt/homebrewARM 上(以下简称<prefix>)。该文件<prefix>/jpeg/9d/lib/libjpeg.dylib应该存在,并且 brew 应该已创建/usr/local/lib/libjpeg.dylib为已安装版本的符号链接。可能 brew 没有像预期的那样创建该符号链接。运行brew doctor可能会提供一些见解,或者您可以手动创建该符号链接,但如果不了解更多信息,您可能会在其他库中遇到此问题。
另一种选择是告诉 gcc 查看brew 表示它已将 libjpeg 安装到的路径:gcc -v -ljpeg -L <prefix>/jpeg/9d/lib/。这显然会破坏其他库,但它让我们知道该库实际上会运行。
检查权限也没什么坏处。
我是否正确使用了这些终端命令?
是的。我用全新安装的 Mojave 进行了测试。我运行gcc -ljpeg并得到了和你一样的错误。然后我跑了brew install jpeg然后gcc -ljpeg返回你所期望的(undefined symbols [...] "_main")
在某些情况下,标头是单独捆绑的,您将安装类似的东西brew install package-dev,但它们与jpeg包捆绑在一起。
由于您是 MacOS 新手,因此我在使用它进行开发时经常遇到一些怪癖。这远不像在 Windows 上开发那样令人沮丧,但在我看来,利用 MacOS 进行开发的最佳方法是 ssh 到 Linux 机器上
| 归档时间: |
|
| 查看次数: |
3681 次 |
| 最近记录: |