我收到以下错误:
ld:找不到-lGoogleAnalytics clang的库:错误:链接器命令失败,退出代码为1(使用-v查看invokation)
我花了一些时间谷歌搜索,但无法找到如何解决这个问题.我是xcode的新手,这是我需要处理的现有项目.
我在Xcode中构建了一些命令行实用程序(普通C,没有Cocoa).我希望他们所有人都使用我的自定义版本的libpng,我希望通过在所有可执行文件中共享一个库副本来节省空间(我不介意重新分发.dylib它们).
我是否需要做一些魔术才能获得libpng导出符号?
"Link Binary with Libraries"是否静态构建阶段链接?
Apple的文档提到在运行时加载库dlopen,但是如何让Xcode创建可执行文件而不抱怨缺少符号?
我想我已经弄明白了:
libpng没有正确链接,因为我已经构建了32/64位可执行文件和32位库.库和可执行文件的构建设置必须匹配.
libpng的config.h需要有大量的定义 #define FEATURE_XXX_SUPPORTED
"Link Binary with Libraries"构建阶段处理动态库就好了,DYLD_FALLBACK_LIBRARY_PATH环境变量是.dylib从应用程序包加载s 所必需的.
我在OSX工作,我正在尝试运行一个make文件,当我尝试时,我得到以下内容:
ld: library not found for -lgsl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [harm] Error 1
Run Code Online (Sandbox Code Playgroud)
之前我发现我需要获取gsl库并使用mac端口并输入:
sudo port install gsl
Run Code Online (Sandbox Code Playgroud)
进入我的命令行窗口,似乎没有问题.丢失的lgsl配置不正确还是没有配备gsl?我试过谷歌搜索lgsl但没有得到太多.我只是在编程几天,我不知道我是否应该设置路径,甚至真的如何做到这一点.
感谢您提供的任何帮助.
我正在尝试构建一个依赖于SDL2库的项目.我用自制软件安装并链接了它:
> ls /usr/local/lib | grep SDL2
libSDL2-2.0.0.dylib
libSDL2.a
libSDL2.dylib
libSDL2_test.a
libSDL2main.a
Run Code Online (Sandbox Code Playgroud)
我还添加了/usr/local/lib我的/etc/paths和~/.bash_profile也:
> cat /etc/paths
/usr/local/lib
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试构建项目时,我仍然会收到此错误:
error: linking with `cc` failed: exit code: 1
note: cc '-m64' '-L' (...) '-lSDL2'
ld: library not found for -lSDL2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
为什么会发生,我该如何解决?
我正在尝试在 Xcode 中构建一个 .dylib。当前 .dylib 构建,但是当我将 .dylib 拖入另一个项目并尝试 #import .dylib 中的一个标头 (Seeker.h) 时,我收到此错误:
*: 没有
那个文件或目录Seeker.h: 没有那个文件或目录
该项目可在此处作为 Xcode 项目使用。
我可以确认标题确实在构建后的 .dylib 旁边的路径中,但至于如何处理它,我不知道。我对 .dylib 文件的唯一体验是内置于 Mac OS X 中的框架,例如 libsqlite3.dylib,它运行良好。我能在 .dylib 文件上找到的所有教程都没有涵盖如何以合理的方式在 Xcode 中使用它们;所有这些都依赖于复杂的脚本或依赖于机器的配置,这对我们不起作用。
所以基本上我需要一个从头到尾的分步过程,成功构建 .dylib 并以不依赖于为不同用户更改构建设置的方式成功地将它包含在另一个 Xcode 项目中。换句话说,当我们将两个项目分发给我们的团队成员时,这种方式行之有效。