linux - 编译时如何使用特定的库?

标签 linux ubuntu glib

我在 Ubuntu 13.04 32 平台上,我正在尝试从源代码编译 “birdie”。 我收到以下错误:

/birdie/build/src/main.c:98:46: error: too few arguments to function 'g_option_context_add_main_entries'
In file included from /usr/local/include/glib-2.0/glib.h:66:0,
             from /home/***/Desktop/birdie/build/src/main.c:20:
/usr/local/include/glib-2.0/glib/goption.h:337:17: note: declared here

我从存储库安装了 libglib2.0-dev 2.36.3,从源代码安装了 glib-2.38.2。它们安装在不同的路径中,一个在 /usr/lib 上,另一个在 /usr/local/lib

我的问题是如何使用一个库代替不同路径中的旧库并禁用它?

最佳答案

这可以使用在编译期间传递给 gcc 的参数。

默认情况下,搜索所有默认路径 目录,如果有匹配项,则使用那些。要覆盖该行为,您可以在 默认路径 之前另外指定要搜索的 directories

gcc <your-file.c> -o <object-file> -I<additional directory to be searched> -L<linking path>

在你的情况下,它应该是

CFLAGS=-I/usr/local/lib -L/usr/local/lib

然后将上面的CFLAGS传递给编译器。

关于linux - 编译时如何使用特定的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531755/

相关文章:

r - 为什么在 R 中使用 plivo 发送短信失败?

c - 在 g_malloc() 之后分配给 uint* 时为 "invaiid operands to binary *"

linux - 我想通过 perl 从 linux 机器运行窗口 cmd 命令

c++ - 在vim中分屏执行C

python - SciPy 安装和测试后的奇怪文件

python - 为什么我的代码无法从谷歌加载 MNIST 数据集?

ubuntu - 为 glib-networking 开发包安装什么

c - 关于 C 库如何工作的问题

linux - vim - 为什么搜索会找到它但不会搜索和替换? (此转义特殊字符模式)

linux - Linux 内核模块中的内存泄漏检测工具