我正在尝试在我的OS X 10.6.8笔记本电脑上构建apple的opensource libc(来自http://www.opensource.apple.com/source/Libc/Libc-763.11/).这是为了从本质上获得本地生成的/usr/lib/libSystem.B.dylib副本,我打算进一步尝试.
我看到了几个基本的障碍(除非,显然,我遗漏了一些基本的东西):
$ make -f Makefile
Makefile:14:***缺少分隔符.停止.
我在谷歌搜索后找到的最接近的参考是:http://www.projectosx.com/forum/index.php? showtopic = 1922&st = 0&p = 12457entry12457 但它仍然不够接近我的口味!
有什么指针吗?
谢谢!
(是的,我理解dylib的重点是动态加载,但我正在尝试创建一个自包含的包.)
我有一个可执行文件,我从命令行构建 - 在OS-X/Lion上,如果重要的话.我将可执行文件发送给了朋友,但他无法运行它,因为他没有安装库.他宁愿不安装库,所以现在我正在尝试创建一个包含原始可执行文件和所有必需库的包.
我习惯于在XCode(IDE)中工作,并且不熟悉make和命令行构建工具及其选项.(我根据网上的非常好的指示构建了这个工具.)因此,明确的指示会很有帮助.
谢谢!
赛跑
酿造医生
给我这个:
警告:在/ usr/local/lib中找到了未编号的dylib.如果您没有故意将它们放在那里,那么在构建Homebrew公式时可能会出现问题,并且可能需要删除它们.
意外的dylib:
/usr/local/lib/libqmi_api.dylib
/usr/local/lib/libvousb.dylib
有谁知道这些dylib是什么?
背景:我的MonoMac应用程序使用sqlite3.0.8.6.dylib的自定义构建.
我需要确切的步骤让MyApp.app使用这个dylib.
以下是我采取的一些步骤:
将dylib复制到MyApp.app/Contents/SharedSupport.(相关问题:这是第三方dylibs的首选位置还是MyApp.app/Contents/Frameworks首选?)
更改了库的已安装名称,以使其与新位置匹配.
MyApp.app/Contents/SharedSupport> otool -L libsqlite3.0.8.6.dylib
libsqlite3.0.8.6.dylib:
@executable_path/../SharedSupport/libsqlite3.0.8.6.dylib (compatibility version 9.0.0, current version 9.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
Run Code Online (Sandbox Code Playgroud)问题
MonoMac众神会帮助解决一个简单的解决方案吗?我花了几个月的时间,一直在努力让它发挥作用.
请提供确切的步骤 - 这个问题与细节有关.
使用Mountan Lion/Mavericks在Mac中使用Octave,当我尝试运行hist()或其他一些命令时,错误消息显示:
Incompatible library version: libfontconfig.1.dylib requires version 15.0.0
or later, but libfreetype.6.dylib provides version 13.0.0
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到合适的图书馆?
在我升级Python之前,我使用了Python 2.7.2,当我将生成的动态库my_lib导入python文件时,Swig没有问题.
现在使用Python 2.7.5我可以使用Swig生成动态库my_lib但是当我在python文件中导入这个库时,我会收到:
致命的Python错误:PyThreadState_Get:没有当前线程中止陷阱:6
随着崩溃报告:
线程0 Crashed :: Dispatch queue:com.apple.main-thread
0 ____ libsystem_kernel.dylib ________ 0x00007fff897c2212 __pthread_kill + 10
1 _____ libsystem_c.dylib ____________ 0x00007fff8b5c9b24 pthread_kill + 90
2 _____ libsystem_c.dylib ____________ 0x00007fff8b60df61 abort + 143
我的python路径解释器是:
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
我在报告中注意到的另一个重要事项是:
libmylib.so ---------- 0x1004c3000 - ----------- 0x1005d0fff --- org.python.python(2.7.2 - 2.7.2) - /System/Library /框架/ Python.framework /版本/ 2.7/Python的
我能做什么?
我需要重新链接一个文件install_name_tool.有问题的文件允许我更改其中一个dylib路径,但是当我更改第二个(7个)时,我收到此错误:
install_name_tool: changing install names or rpaths can't be redone for: some/library (for architecture i386) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索后,我发现文件中的新路径没有足够的空间,我可能能够使用该ld工具,或者libtool解决这个问题.但是,我无法弄清楚如何.我没有这个库的源代码,所以我无法重新编译它.
有没有办法让我更新这个文件的所有dylib路径?任何帮助将非常感谢!
我在osx 10.10我正在使用的命令: install_name_tool -change old/dylib/path.dylib new/dylib/path.dylib file/to/update
carthage version:0.25.0xcodebuild -version:8.3.3--no-build吗?没有--no-use-binaries吗?没有--use-submodules吗?没有--cache-builds吗?没有Cartfile
github "rs/SDWebImage"
github "AgileBits/onepassword-extension"
github "hsousa/HCSStarRatingView"
github "sugoi-wada/facebook-ios-sdk" "780a72cd6086c57939d83a7143462ae13dfb9a74"
github "CSStickyHeaderFlowLayout/CSStickyHeaderFlowLayout"
github "card-io/card.io-iOS-source"
我可以使用构建脚本构建我的依赖项,如此处的文档中所述.现在我正在尝试将我的静态框架合并到一个动态框架中并遇到问题.
首先,我将一个框架添加到dylib目标,我已经禁用了bitcode并添加了以下内容OTHER_LDFLAGS:-all_load, -ObjC.我从小开始HCSStarRatingView.它已添加到他们的dylib目标和构建.
为了测试这个新的组合框架,我添加了一个app目标.我可以导入框架目标,应用程序目标可以识别它.但是,当我尝试声明一个新视图时,let view = HCSStarRatingView(frame: .zero)我收到以下错误:Use of unresolved identifier 'HCSStarRatingView'.
我假设我没有HCSStarRatingView直接导入,因为它现在是我的框架目标的一部分.我还假设我不必向动态框架目标的伞头添加任何内容来暴露内部链接的静态框架.这些假设是否正确?知道我在这里可能缺少什么吗?
在Xcode 4.x中,我已经将我的Run方案编辑为'Enable Guard Malloc',因为我有一个我需要跟踪的非描述性malloc错误.我知道我需要在模拟器中运行才能使用此功能.但是,当我这样做时,应用程序立即冻结,Xcode向我显示一个堆栈跟踪,如下所示:

我已经用Google搜索了解决方案,但到目前为止还没有任何乐趣.据我所知,我应该在我的方案中设置一个环境变量:
DYLD_INSERT_LIBRARIES -> /usr/lib/libgmalloc.dylib
Run Code Online (Sandbox Code Playgroud)
然而,这并没有解决问题.我也试过'lsystem'作为值,但这也没有用.
任何人都可以建议解决这个dylib问题,或者推荐一个替代'Enable Guard Malloc'来识别malloc'd堆区域被超出的位置?
UPDATE
为了澄清,这是我正在处理的错误类型:
malloc: *** error for object 0x2b4b54: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Run Code Online (Sandbox Code Playgroud)
我已经尝试设置一个符号断点malloc_error_break,但它仍然在内存问题上"随机"断开,而不是超出分配区域.
正如标题所说......我对dlopen(). 我知道应用商店不允许这样做,但我对 iOS 上的这个感到好奇。
我的问题是我可以创建一个 .dylib 文件,我可以在运行时使用以下代码加载这个文件
char *dylibPath = "/Applications/myapp.app/mydylib2.dylib";
void *libHandle = dlopen(dylibPath, RTLD_NOW);
if (libHandle != NULL) {
NSString * (*someMethod)() = dlsym(libHandle, "someMethod");
if (someMethod != NULL) {
NSLog(someMethod());
}
dlclose(libHandle);
}
Run Code Online (Sandbox Code Playgroud)
这是取自这里。
我遇到的问题是,如果我更改 mydylib2.dylib,dlopen则不会加载重新编译的 .dylib 文件。相反,它解析旧版本的函数someMethod。
例如,如果someMethod第一次返回@"Hello"并且我将其更改为@"Hello World"并重新编译,则上面的代码将始终返回,@"Hello"直到我在模拟器中重新启动应用程序。
有谁知道为什么会这样?并建议一个解决方法,以便可以在运行时重新加载这个 .dylib?