我正在尝试使用Xcode 7.0和MAC 10.10.5编译Indesign插件代码。但我得到“ld:找不到文件:@ executable_path / InDesignModel.framework / Versions / A / InDesignModel for architecture x86_64”错误。
我花了很多时间来解决它而没有任何运气。
答案 0 :(得分:1)
缺少图书馆。使用动态库的可执行文件既有这些库的列表,也有查找它们时可能的搜索路径,称为运行路径列表。库列表可以是完整路径或相对路径。如果路径是相对路径,则链接器将在运行路径列表的每个元素下搜索它们。 (您可以使用otool -L
查看预期库的列表。)
@executable_path
是动态链接器在执行此搜索时替换为可执行文件的完整路径的变量。所以链接器正在/path/to/App.app/Contents/MacOS/app_executable/InDesignModel.framework/Versions/A/InDesignModel
寻找库,但它不存在。
解决方案是使用install_name_tool
更新可执行文件的运行时路径列表。你可以这样做:
$ install_name_tool -add_rpath /path/to/InDesignModel app_binary
或者,您可以在编译期间直接添加@rpath
,方法是添加链接标记-Wl,-rpath,/path/to/InDesignModel
。
答案 1 :(得分:0)
您需要明确链接InDesignModel框架,请确保:
-framework InDesignModel
在您的链接命令中。或者在Xcode中添加InDesignModel.framework。
这在Xcode 7中为我修复了它,它是Xcode 6的行为改变。