gpt4 book ai didi

c - Matlab mex 没有 xcode,但有独立的命令行工具

转载 作者:行者123 更新时间:2023-12-02 08:18:03 26 4
gpt4 key购买 nike

我想在不安装 xcode 的情况下编译 mex 文件,只使用命令行工具(来自苹果开发人员中心)。

Apple 命令行工具安装编译器并将标准库和头文件添加到系统中,该包比 xcode 小得多(几 GB)。

在 linux 上运行 mex 是可能的 - 我看不出为什么 matlab mex 应该需要 macos 所需的巨大 SDK。一个漫长的晚上反复试验和破解配置文件并没有帮助。有没有人有一个关于如何在 matlab 之外编译 mex 文件的最小工作示例,或者在没有安装 xcode 的情况下使用 mex 的简单方法?

最好的问候,马格努斯

最佳答案

好吧,我在这里还有另一个选择:
编辑/Applications/MATLAB_R2016b.app/bin/maci64/mexopts下的文件(大概应该有3.xml文件,都需要同样的修改)。

找到 <XCODE_AGREED_VERSION>部分,注释整个 xml 标签,例如用 <!-- 包裹它们和 -->像这样:

<!--XCODE_AGREED_VERSION>
<and diagnostic="Xcode is installed, but its license has not been accepted. Run Xcode and accept its license agreement." >
<or>
<cmdReturns name="defaults read com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense"/>
<cmdReturns name="defaults read /Library/Preferences/com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense"/>
</or>
<cmdReturns name="&#10;agreed=$$ &#10; if echo $agreed | grep -E '[\.\&quot;]' >/dev/null; then &#10; lhs=`expr &quot;$agreed&quot; : '\([0-9]*\)[\.].*'` &#10; rhs=`expr &quot;$agreed&quot; : '[0-9]*[\.]\(.*\)$'` &#10; if echo $rhs | grep -E '[\.&quot;]' >/dev/null; then &#10; rhs=`expr &quot;$rhs&quot; : '\([0-9]*\)[\.].*'` &#10; fi &#10; if [ $lhs -gt 4 ] || ( [ $lhs -eq 4 ] &amp;&amp; [ $rhs -ge 3 ] ); then &#10; echo $agreed &#10; else &#10; exit 1&#10; fi &#10; fi" />
</and>
</XCODE_AGREED_VERSION -->

一些注意事项:
  • 这些文件默认是只读的,你需要发出 sudo chmod
    644 *
    在该目录中
  • 注释掉所有必需的文件后,在 matlab 中发出以下命令:mex -setup C++

  • 然后你就完成了

    关于c - Matlab mex 没有 xcode,但有独立的命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40052388/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com