【问题标题】:Including wiiuse.h in C在 C 中包含 wiiuse.h
【发布时间】:2014-06-29 03:52:00
【问题描述】:

我正在运行 OSX 10.9.2

我已经成功编译并运行了wiiuse 的示例程序。然而,这意味着用 CMake 制作一个 makefile,然后运行 ​​make。不过,我对如何使用这个库编译我自己的程序感到困惑。作为第一步,我尝试自己重新编译示例程序。我创建了一个包含 example.c 和 wiiuse.h 的目录。当我跑步时

clang example.c -lwiiuse -o example

我明白了

ld: library not found for -lwiiuse
clang: error: linker command failed with exit code 1 (use -v to see invocation)

什么给了?为什么不能包含库?

【问题讨论】:

  • 使用make -n 生成Makefile 正在运行的确切命令。然后复制库参数,特别是LD_LIBRARY_PATH
  • 我对 make 正在做的事情有点困惑。 gist.github.com/anonymous/54c47db1948aa820d1e4你能解释一下如何使用LD_LIBRARY_PATH吗?
  • 它似乎正在调用其他 make 脚本。您应该按顺序运行这些命令以查看它们的作用。您还可以手动检查调用的脚本。
  • 而那些make脚本调用其他make脚本,又调用其他脚本,又调用其他脚本。这有点荒谬。我真的不知道如何继续。
  • 万岁!有效!非常感谢您的帮助! gcc example.c -lwiiuse -o example -L/Users/alex/Desktop/WiiUse/build/src/

标签: c wiiuse


【解决方案1】:

由于该评论恰好适用于 OP,因此我将其写入答案。

在常规的 Unix 上,可以使用 -Lpath/to/location/of/so_file 选项运行 gcc

在运行编译后的二进制文件时,将设置LD_LIBRARY_PATH 以包含相同的路径。

显然这种方法也适用于 OS X。

要在运行时设置LD_LIBRARY_PATH,只需在实际程序前加上赋值命令即可:

LD_LIBRARY_PATH=/path/to/folder/containing/my/lib ./example

【讨论】:

  • 对不起,您能解释一下如何在运行时设置 LD_LIBRARY_PATH 吗?这样我就可以移动libwiiuse.dylib了吧?
猜你喜欢
  • 2010-12-23
  • 2020-10-03
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-04-25
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多