问题标签 [dyld]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 未找到符号,预计在平面命名空间 ObjC++ 中
我可能有一个简单的问题,但是在编译过程中没有信息性错误或警告来提醒我出了什么问题。
我有一个包含 C++ 主文件和 ObjC 头文件的 Objective-C++ 应用程序。
它构建得很好,但是在运行时,它会给出以下错误消息:
再多的谷歌搜索都没有找到解决方案,我敢肯定我只是错过了某个地方的编译或构建选项。
“AppController.h”包含在目标中(选中),并包含在#import
ObjC 类文件中。
任何帮助是极大的赞赏。
ObjC++ 经常让我头疼。
谢谢,
-S!
c++ - Makefile 找不到 macports 安装的 boost 库
我刚刚从 macports 使用sudo port install boost
.
一切正常。现在我有一个项目,我正在尝试使用 makefile 构建。一切都很好,直到涉及到需要 boost 库的文件。
它说:
src/graph.h:20:42: error: boost/graph/adjacency_list.hpp: No such file or directory
该文件实际上位于两个地方:
/opt/local/include/boost/graph/adjacency_list.hpp
和
/opt/local/var/macports/software/boost/1.42.0_0/opt/local/include/boost/graph /adjacency_list.hpp
在寻找 boost/graph/adjacency_list.hpp 的文件 src/graph.h 中,包含语句在这里:
#include<boost/graph/adjacency_list.hpp>
我该如何进行这项工作?
dyld - dyld:找不到符号:_MPMoviePlayerPlaybackStateDidChangeNotification
我正在构建使用 MPMoviePlayerViewController 播放视频的通用应用程序。观察通知“MPMoviePlayerPlaybackStateDidChangeNotification”。该应用程序在 iPad 模拟器中成功运行,但在 iPhone 中运行时抛出以下错误:-
dyld:找不到符号:_MPMoviePlayerPlaybackStateDidChangeNotification 引用自:/Users/veer/Library/Application Support/iPhone Simulator/3.0/Applications/27BC67AA-72D1-4DD2-9146-0126FCC8E90C/test.app/eReader 预期在:/Developer/Platforms/ iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/MediaPlayer.framework/MediaPlayer in /Users/veer/Library/Application Support/iPhone Simulator/3.0/Applications/27BC67AA-72D1-4DD2-9146 -0126FCC8E90C/test.app/eReader
有没有人遇到同样的问题并解决了?
提前致谢!
objective-c - Dyld:库未加载错误 Mac OS
万岁,
所以我知道我将得到十几个“加载 lib 虚拟”的答案,但是这里有......
junk.framework 正在导出另一个项目(junk.app)的一些对象,因此我可以在集群上的 remote.app 节点上使用它。我可以编译 junk.framework(我意识到动态加载不再意味着什么)并编译并将 remote.app 链接到 junk.framework。
但是,当我运行 remote.app 时,我得到了这个可爱的错误宝石:
我认为发生的事情是 junk.framework 正在从某个位置加载 libtiff.dylib 并且找不到它。junk.framework 是我正在做的另一个项目,我刚刚开始构建(最后)。
当我get info
在垃圾目标中使用 libtiff.dylib 时,它给了我/Users/slate/Documents/osirix/osirix/Binaries/LibTiff/libtiff.dylib
一条路径……我已经被absolute path
选中了。那么为什么它不在那里寻找呢?
呃......为什么它在看@executable_path/../???? 这个设置到底在哪里,所以我可以改变它?
编辑 - -
otool -L 给了我这个:
c++ - 链接 C++ 动态库时延迟符号绑定失败
我正在用 C++ 编写一个 dylib,但是当我尝试将它链接到我的应用程序时,它在执行时给了我一个错误:
我确保符号没有被剥离,并且
报告该符号存在于库中:
我是从 XCode 内部链接的,所以链接命令有点奇怪。这是 dylib 的链接器命令:
这是测试应用程序的链接器命令:
关于为什么会发生这种情况和/或如何解决它的任何想法?
gcc - 强制 gcc 使用一个链接器而不是另一个链接器
最近我一直在开发 OS X。有一段时间事情进展得很顺利,直到不知何故ld
进入我的系统,现在gcc
无法使用dyld
. 此外,我所有的共享库都是*.dylib
格式的,而 ld 顽固地忽略了那里的存在。如果我mv
从 ld PATH
,gcc 只是抱怨它找不到 ld。
请帮助我让 gcc 回到正轨并使用它应该使用的东西。
macos - dyld:警告,未知环境变量:DYLD_LIBRARY_PATH_64 位
我使用 Mac OS X Developer Tools 的捆绑属性列表编辑器将环境变量 DYLD_LIBRARY_PATH_64 位设置为文件 ~/.MacOSX/environment.plist 中的值 path/to/dylib。我保存了这个文件并注销了。
重新登录后,控制台显示多条消息“dyld:警告,未知环境变量:DYLD_LIBRARY_PATH_64-bit”。我使用属性列表编辑器从 environment.plist 中删除了条目,保存了文件并注销。
我重新登录,警告消息仍然存在。dyld 手册页显示了一个常量列表,这些常量看起来类似于我任性的环境变量,因为它们都以“DYLD_”开头。源文件 dyld.cpp 在一长行 DYLD 常量之后显示了一个 else,并带有打印相同警告消息的代码。也许我飞得太近了环境变量命名的太阳。我以为我们是自由的!
我试过 update_dyld_shared_cache 无济于事。也许我错过了一些重要的标志?
我在 /etc/launchd.conf 中添加了“setenv DYLD_LIBRARY_PATH_64-bit path/to/dylib”,试图在我的路径中添加一个(显然格式错误的)环境变量,希望如果它出现,我可以删除它——但没有成功.
从命令行,导出不显示 DYLD_LIBRARY_PATH_64 位。这是一些示例输出:
这个故事的寓意是永远不要使用属性列表编辑器,至少对于动态库路径。好吧,不——这个故事的寓意是永远不要在环境变量名称的末尾使用破折号,因为它们看起来像 flags。
话虽如此,对于摆脱这个伪装的环境变量,以及清理我的控制台中重复的 dyld 警告,你有什么建议吗?
谢谢!
c++ - 使用 DYLD 插入来插入类函数
我已经成功地使用 dyld -macosx- 将标准 C 函数插入到第三方应用程序中,获得了有关它所做的变通方法的重要信息。但我真正需要的是替换某个类的某个功能。
我要覆盖的函数是 QString::append(..., ..., ...),所以每次将一个字符串附加到另一个字符串时——整个应用程序都使用 qstring——,我发现。
有办法吗?这是我已经拥有的代码。
非常感谢你
macos - 如何在 Mac OSX 下使用 gcc 设置可执行文件的运行时路径(-rpath)?
我想在 Mac OSX 下在编译时设置可执行文件(用于链接器)的运行时路径,以便动态链接器在程序启动时找到非标准位置的共享库。
在 Linux 下,使用-Xlinker -rpath -Xlinker /path/to
(或使用-Wl,-rpath,/path/to
)可以做到这一点,在 Solaris 下,您可以添加-R/path/to
到编译器命令行。
我发现一些信息表明 Mac OS X gcc 从 10.5 开始支持 -rpath,即从 ~ 2008 年开始。
我试图用一个最小的例子让它工作 - 没有成功:
和:
像这样编译它:
现在测试:
因此问题是:如何在 Mac OSX 下设置链接器的运行时路径?
顺便说一句,设置DYLD_LIBRARY_PATH
有效 - 但我不想使用这个 hack。
编辑:关于otool -L
:
似乎otool -L
只打印可执行文件链接的库名称(以及链接时可能的位置),并且没有运行时路径信息。