Mac OS X ld提示:无法找到-lpython3库。

5
我将尝试跟随这里给出的示例,编译一些C代码并将其导入到Python中:http://csl.sublevel3.org/C-functions-from-Python/ 我可以使用建议的调用方式进行编译:
gcc -dynamiclib -I/usr/include/python2.3/ -lpython2.3 -o myModule.dylib myModule.c

但是我正在使用Python 3,我已经解决了一堆编译器错误,最终得到了这个:

gcc -dynamiclib -I/Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m/ -lpython3.2m -o myModule.dylib myModule.c

但是现在我卡住了,会出现以下错误:
ld: library not found for -lpython3.2m

根据我的有限知识,我尝试了一些方法。我发现 Python 版本存在两个位置:

/System/Library/Frameworks/Python.framework/Versions

还有:

/Library/Frameworks/Python.framework/Versions

Python 3.2 位于第二个位置,因此我认为我需要告诉 gcc 在哪里搜索以解决 -lpython3.2m 的问题?或者 -lpython3.2m 是错误的,我尝试使用 -lpython3.2 但是从 ld 得到了相同类型的错误。

其他可能有用的事实:

操作系统:Mac OS 10.6.8

Python 3.2 安装自从 Python.org 获得的 DMG 文件。

如果有其他信息可以帮助你帮助我,请让我知道。

1个回答

6
为了告诉 gcc 寻找库文件的额外目录,你需要使用 -L 选项,类似于你已经使用的 -I 选项。例如:-L/Library/Frameworks/Python.framework/Versions/3.2/lib。

1
太棒了!这个可以运行了,但是现在我又出现了新的错误。感谢你的帮助! - ilikeprogramming
谢谢,我需要-L/usr/local/homebrew/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/,这个路径关键地包含了libpython3.9.dylib - Sridhar Sarnobat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接