Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在Mac OS上为Python包安装C++依赖关系?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<P>有一个包含Python“绑定”的GITHUB RePO,它是我感兴趣的C++库。自述文件中有大量关于如何在Linux上安装C++库的信息,但没有关于如何使用Mac OS来进行信息处理。p> <p>我还打开了一个问题,要求自述文件安装说明包括除linux之外的mac OS特定安装。在这个问题上没有任何活动</p> <p>以下是两份回购协议:</p> <ul> <li>(Python)<a href="https://github.com/asiffer/python3-libspot" rel="nofollow noreferrer">https://github.com/asiffer/python3-libspot</a></li> <li>(C++)<a href="https://github.com/asiffer/libspot" rel="nofollow noreferrer">https://github.com/asiffer/libspot</a></li> </ul> <P>由于C++软件包不能通过BREW/PIP/ANACODA进行安装,我不确定该怎么走。<p> <h3>我的尝试:</h3> <p>我试过<code>./configure</code>和<code>make</code>。没有<code>./configure</code>文件</p> <p>要解决缺少<code>./configure</code>的问题,请阅读一个名为<code>autoconf</code>的工具,它可以为您生成<code>./configure</code>。我用<code>brew</code>安装了它,但不确定要传递什么参数。这些文档很难理解:<a href="https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Making-configure-Scripts.html" rel="nofollow noreferrer">https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Making-configure-Scripts.html</a></p> <p>仅仅使用<code>make</code>会导致错误提示:<code>error: unsupported option '-fopenmp'</code>,这让我陷入了一个完全不同的兔子洞,让我在Makefile中添加了行:</p> <pre><code>CPP = /usr/local/opt/llvm/bin/clang CPPFLAGS = -I/usr/local/opt/llvm/include -fopenmp LDFLAGS = -L/usr/local/opt/llvm/lib omp_hello: omp_hello.c $(CPP) $(CPPFLAGS) $^ -o $@ $(LDFLAGS) </code></pre> <p>那感觉很危险,因为我不知道这些东西意味着什么。此外,它还导致了一个新的错误:<code>*** missing separator. Stop.</code></p> <p>然后我读到这可能是因为使用了“软”选项卡而不是“硬”选项卡,它们可以通过<code>cat -e -t -v makefile_name</code>识别。我找到了一行缺少“硬”制表符的地方(上面的缩进行),并插入了它。这导致了一个新的错误:</p> <pre><code>make: *** No rule to make target `omp_hello.c', needed by `omp_hello'. Stop. </code></pre> <p>接下来,根据杨玉石的建议和他的后续评论,我根据他的回答更改了第39行和第40行,并将一些附加文件的位置添加到<code>CXXFLAGS</code>变量中:</p> <pre><code>-I//opt/homebrew/Cellar/libomp/11.0.1/include -L/opt/homebrew/Cellar/libomp/11.0.1/lib </code></pre> <p>这让我走得更远了。接下来,OSX不喜欢这个脚本试图安装的地方,正如<a href="https://stackoverflow.com/a/33314242/3696204">this answer</a>所解释的。因此,我在makefile中更改了这两行,这两行似乎指示了安装位置:</p> <pre><code>INSTALL_HEAD_DIR = $(DESTDIR)/usr/include/libspot INSTALL_LIB_DIR = $(DESTDIR)/usr/lib </code></pre> <p>到</p> <pre><code>INSTALL_HEAD_DIR = $(DESTDIR)/usr/local/include/libspot INSTALL_LIB_DIR = $(DESTDIR)/usr/local/lib </code></pre> <p>这确实让我走得更远了。接下来,我遇到一个错误,抱怨makefile中以下几行的平面<code>-t</code>:</p> <pre><code>@install -t $(INSTALL_LIB_DIR) $(LIB_DIR)/*.so @install -t $(INSTALL_HEAD_DIR) $(INC_DIR)/*.h </code></pre> <p>因此,我删除了这些标志,这导致了以下错误:</p> <pre><code>Checking the headers installation directory (/usr/local/include/libspot) Checking the library installation directory (/usr/local/lib) Installing the shared library (libspot.so) install: /usr/local/lib: Inappropriate file type or format </code></pre> <p>我找不到阅读材料,也不知道如何修复。如需进一步协助,不胜感激</p> <p>下面是我试图回答这个问题的SO和其他资源的列表:</p> <ul> <li><a href="https://stackoverflow.com/questions/43555410/enable-openmp-support-in-clang-in-mac-os-x-sierra-mojave/48746939#48746939">Enable OpenMP support in clang in Mac OS X (sierra & Mojave)</a></li> <li><a href="https://stackoverflow.com/questions/14924683/makefile-error-make-no-rule-to-make-target-omp-h-with-openmp">makefile error: make: *** No rule to make target `omp.h' ; with OpenMP</a></li> <li><a href="https://stackoverflow.com/questions/16931770/makefile4-missing-separator-stop">makefile:4: *** missing separator. Stop</a></li> <li><a href="http://www.idryman.org/blog/2016/03/10/autoconf-tutorial-1/" rel="nofollow noreferrer">http://www.idryman.org/blog/2016/03/10/autoconf-tutorial-1/</a></li> <li><a href="https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Making-configure-Scripts.html" rel="nofollow noreferrer">https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Making-configure-Scripts.html</a></li> <li><a href="https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en" rel="nofollow noreferrer">https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en</a></li> </ul> <h3>我的问题</h3> <p>我该怎么做</p> <p>如果您知道如何做到这一点,您是否还可以简要解释每个步骤背后的概念?我很乐意学习一点,而不是仅仅按照正确的顺序复制和粘贴命令</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>通常需要运行<code>brew install <your C++ package></code>或将源代码下载到某个目录并运行一组命令:</p> <pre><code>./configure make make install </code></pre> <p>虽然它通常可以工作,但有些软件包不能安装在Mac上,因为它们的维护人员没有为Mac准备配置</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将Python中的列表复制到给定的目标中?
6 回答
如何将python中的列表插入SQL表
6 回答
如何将python中的列表转换为numpy数组以放入十位
7 回答
如何将python中的列表输入javascript?
8 回答
如何将python中的列表返回给dag?
3 回答
如何将Python中的列表项重新排列成成对的元组/列表?
8 回答
如何将Python中的初始化对象序列化为XML?
3 回答
如何将python中的十进制字符串转换为数字?
6 回答
如何将Python中的原始输入文本转换为Tkinter中的标签?
7 回答
如何将python中的反斜杠命令转换为在Linux上运行
4 回答
如何将python中的命令行参数转换为字典?
10 回答
如何将python中的图像值传递到kivy中的kv文件?
3 回答
如何将Python中的图像数组(枕头对象)上传到Google云
8 回答
如何将Python中的图像编码为Base64?
5 回答
如何将python中的图像调整为灰度低分辨率,如MNIST时尚数据?
7 回答
如何将python中的多个html输出保存到单个文件(或多个)中?
2 回答
如何将Python中的多个ifelse语句重构为一个函数?
7 回答
如何将Python中的多处理与Django结合使用,从xml文件创建数千个模型实例?
10 回答
如何将python中的多级API响应转换为dataframe
8 回答
如何将python中的多线程编程模型转换为异步/等待模型?
1 回答