我正在尝试在 Xcode 中构建一个 .dylib。当前 .dylib 构建,但是当我将 .dylib 拖入另一个项目并尝试 #import .dylib 中的一个标头 (Seeker.h) 时,我收到此错误:
*: 没有
那个文件或目录Seeker.h: 没有那个文件或目录
该项目可在此处作为 Xcode 项目使用。
我可以确认标题确实在构建后的 .dylib 旁边的路径中,但至于如何处理它,我不知道。我对 .dylib 文件的唯一体验是内置于 Mac OS X 中的框架,例如 libsqlite3.dylib,它运行良好。我能在 .dylib 文件上找到的所有教程都没有涵盖如何以合理的方式在 Xcode 中使用它们;所有这些都依赖于复杂的脚本或依赖于机器的配置,这对我们不起作用。
所以基本上我需要一个从头到尾的分步过程,成功构建 .dylib 并以不依赖于为不同用户更改构建设置的方式成功地将它包含在另一个 Xcode 项目中。换句话说,当我们将两个项目分发给我们的团队成员时,这种方式行之有效。
我已经阅读了关于rails错误的每个帖子都在寻找我的问题的解决方案,而我已经解决了一些问题,我想出了更多.我根据Agile Development with Rails一书升级到Snow Leopard并安装了RVM和Rails.然而,一旦我创建我的应用程序文件夹并执行RAKE,我得到此错误,我只是无法弄清楚如何解决它.我已经尝试过几次重新安装所有内容都无济于事.这是架构问题吗?或者我需要找到一个库并加载它?我怎么做?
rake aborted!
dlopen(/opt/local/lib/ruby/1.8/i686-darwin9/digest/sha1.bundle, 9): Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
Referenced from: /opt/local/lib/ruby/1.8/i686-darwin9/digest/sha1.bundle
Reason: no suitable image found. Did find:
/opt/local/lib/libcrypto.1.0.0.dylib: mach-o, but wrong architecture - /opt/local/lib/ruby/1.8/i686-darwin9/digest/sha1.bundle
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud) 我想将Aviary SDK Objective-C库集成到Monotouch项目中.我使用'Monotouch Binding Project'模板.所以我创建了API定义文件并定义了LinkWith属性.
[assembly: LinkWith ("libAviarySDK.a", LinkTarget = LinkTarget.ArmV6 | LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, IsCxx = true, Frameworks="CoreGraphics QuartzCore Accelerate StoreKit CoreData", LinkerFlags="-ObjC -all_load -fobjc-arc")]
Run Code Online (Sandbox Code Playgroud)
它需要以下库:
除了libsqlite3.0.dylib之外,所有这些框架都没有问题链接
我遇到的问题是,库依赖于libsqlite3.0.dylib,我不知道如何在我的MonoTouch应用程序中包含这些框架.
在结果中 - 编译器返回以下错误:
/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -u _catch_exception_raise -force_load /var/folders/2n/ql7wkht57cg8wfgzz0cr9trm0000gn/T/tmp31d0b99b.tmp/libAviarySDK.a -ObjC -all_load -fobjc-arc
架构i386的未定义符号:
"_sqlite3_open",引自: - libAviarySDK.a中的[AFLocalyticsDatabase init](AFLocalyticsDatabase.o)
"_sqlite3_busy_timeout",引自: - libAviarySDK.a中的[AFLocalyticsDatabase init](AFLocalyticsDatabase.o)
"_sqlite3_exec",引自: - libAviarySDK.a中的[AFLocalyticsDatabase beginTransaction:](AFLocalyticsDatabase.o)
*和许多其他相同的参考*
ld:找不到架构i386的符号collect2:ld返回1退出状态
mtouch退出代码1
我来自Windows背景,我习惯于通过创建 ( .dll )s 然后分发所有库和文档来创建 SDK 。
因此,如果用户想要使用它,他会添加对库的引用并使用它。但是,在 Mac 中,我正在开发 SDK,我想要一种创建和分发Mac 库的方法。
(我想在Objective-C 中创建库)请帮助我:)
我在为Simulator编译我的应用程序时遇到问题.在设备运行完美,但一旦我尝试在模拟器中编译我得到以下错误:
ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我在发布这个问题之前检查过,但我在stackoverflow中找到的答案,比如运行这个,
export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xct?oolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
要么
问题是Xcode 5用clang替换了gcc并添加了一个"-triple"选项,指定OSX作为目标.如果你在两个gcc命令行上传递"-miphoneos-version-min = 7.0",它就可以工作.如果将"--verbose"传递给gcc,则可以看到clang命令行.还需要添加到Xcode 5的PATH,以便cmake可以找到必要的工具:export PATH =/Applications/Xcode5-DP6.app/Contents/Developer/Toolchains/XcodeDefault.xct oolchain/usr/bin:/ Applications /Xcode5-DP6.app/Contents/Developer/usr/bin:$PATH这些都不是官方的..但到目前为止对我有用.
我真的不明白该怎么做.有什么帮助吗?
我在 iOS 上部署动态共享库时遇到了困难。
\n\n为了隔离和暴露问题,我有一个非常简单的“HelloWorld”项目:一个库导出类,其中包含返回“Hello World”的函数,以及一个使用该类并显示消息的程序。
\n\n我正在使用 QtCreator 和 Qt 5.5。
\n\n我能够生成文件.dylib并链接我的程序。但是,当我将其部署到 iPhone 上时,出现错误:
D\xc3\xa9marrage des processus distants.\ndyld: Library not loaded: libMyLib.1.dylib\n Referenced from: /private/var/mobile/Containers/Bundle/Application/D6942CCE-828D-4C10-86DA-F7DA7ADF7449/MyApp.app/MyApp\n Reason: image not found \nRun Code Online (Sandbox Code Playgroud)\n\n在 Android 上,我遇到了同样的问题,可以通过使用ANDROID_EXTRA_LIBS. 但我找不到 iOS 的等效项。
这是我的 .pro 文件。完整的项目可以在这里下载。我将此作为一个错误向 Qt报告,但如果有人能提出一种解决方法,这将会有所帮助!
\n\nMyLib.pro:
\n\nQT -= core gui\n\nTARGET = MyLib\nTEMPLATE = lib\n\nDEFINES += MYLIB_LIBRARY\n\nSOURCES += mylib.cpp\n\nCONFIG += shared\n\nHEADERS += mylib.h\\\n mylib_global.h\nRun Code Online (Sandbox Code Playgroud)\n\n我的应用程序.pro:
\n\nQT += core gui\n\ngreaterThan(QT_MAJOR_VERSION, …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序和它链接的dylib.我的理解是应用程序包应该包含dylib.那是对的吗?
有没有办法在构建时将dylib复制到应用程序包?
谢谢,艾伦
I\xe2\x80\x99m 为 iOS 构建动态框架。它需要引用代码或其他库中的一些符号,但我不想将它们链接到框架中。
\n\n这可以在构建静态库时实现,只需设置搜索路径并确保它们不包含在 target\xe2\x80\x99s 构建阶段中。
\n\n但是当构建动态框架或dylib时,会导致未定义符号错误。我尝试了各种链接选项,例如-l -weak_library -weak_framework -I -rpath -rpath-link。但没有一个有效。
链接命令如下所示:
\n\nclang -arch x86_64 -dynamiclib\n -isysroot *iPhone_SDK_PATH* \n *OPTIONS_NOT_IMPORTANT* \n -install_name @rpath/Foo.framework/Foo\n -Xlinker -rpath -Xlinker @executable_path/Frameworks\n -Xlinker -rpath -Xlinker @loader_path/Frameworks\n -Xlinker -rpath -Xlinker *BUILD_PATH*\n -mios-simulator-version-min=7.0\n -Xlinker -no_deduplicate\n -Xlinker -objc_abi_version\n -Xlinker 2 \n -fobjc-arc -fobjc-link-runtime\n -framework Foundation\n -single_module\n -compatibility_version 1\n -current_version 1\n -Xlinker -dependency_info\n -Xlinker *BUILD_PATH*/Foo.build/Objects-normal/x86_64/Foo_dependency_info.dat \n -o *BUILD_PATH*/Foo.framework/Foo\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试使用库编写C程序。该库提供了include/和lib/目录.dylib,分别包含头文件和文件。
我的文件与include/和在同一目录中lib/。我正在尝试使用以下命令进行编译:
clang -I"./include/" -L"./lib/" -lcsfml-graphics -lcsfml-window test.c
Run Code Online (Sandbox Code Playgroud)
但是,当我运行程序时,出现以下错误:
% ./a.out
dyld: Library not loaded: @rpath/libcsfml-graphics.2.4.dylib
Referenced from: ~/src/CSFML-2.4-osx-clang/./a.out
Reason: image not found
zsh: abort ./a.out
Run Code Online (Sandbox Code Playgroud)
使用这些库进行编译的正确方法是什么?我宁愿在编写小程序时简单地使用命令行,而不必设置Xcode等。
% ls -l lib/
-rwxr-xr-x@ 1 staff 50296 Mar 1 2017 libcsfml-audio.2.4.0.dylib*
lrwxr-xr-x@ 1 staff 26 Mar 1 2017 libcsfml-audio.2.4.dylib@ -> libcsfml-audio.2.4.0.dylib
lrwxr-xr-x@ 1 staff 24 Mar 1 2017 libcsfml-audio.dylib@ -> libcsfml-audio.2.4.dylib
-rwxr-xr-x@ 1 staff 163680 Mar 1 2017 libcsfml-graphics.2.4.0.dylib*
lrwxr-xr-x@ 1 staff …Run Code Online (Sandbox Code Playgroud) 我正在创建一个unizp文件的应用程序,在谷歌搜索后我发现我们可以使用已经在Cocoa touch中提供的libz.dylib.我觉得奇怪的是,我无法找到libs.dylib的任何文件.任何人都可以提供一些官方文件吗?而且如果我们想要解压缩文件,每个人都建议使用一些第三方库来解压缩文件.我们不能用默认的libz.dylib吗?