【发布时间】:2011-08-26 09:16:04
【问题描述】:
我正在尝试使用 gcc 在 Ubuntu 上从 Tutorial 编译简单的 C 示例。我必须使用什么作为 gcc 的参数才能包含 #include <libappindicator/app-indicator.h> 所需的库?
【问题讨论】:
我正在尝试使用 gcc 在 Ubuntu 上从 Tutorial 编译简单的 C 示例。我必须使用什么作为 gcc 的参数才能包含 #include <libappindicator/app-indicator.h> 所需的库?
【问题讨论】:
-I<search path to include files>
-L<search path to the lib file>
-l<libname>
【讨论】:
I或L和searchpath之间的空格,并将它们放在一起:-I<searchpath to include files>跨度>
使用-l 命令行选项。您可以使用-L 选项指定库搜索路径。例如:
gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c
这会将myprogram 与文件夹/home/me/foo/lib 中的静态库libfoo.a 链接起来。
【讨论】:
我做的是:
pkg-config --list-all | grep indicator
【讨论】:
gcc example.c -o example `pkg-config --cflags --libs appindicator-0.1`
pkg-config 将为libappindicator 及其依赖项获取所需的包含和库标志。这假设 libappindictaor-dev 包已经安装。
【讨论】:
如果您使用apt-get、Synaptic Package Manager 等来获取appindicator 库(相对于从源代码构建它),您是只安装了libappindicator1 包还是也 em> 安装libappindicator-dev 以获得libappindicator 头文件? Linux 包经常将运行时库从编译时头文件中分离出来。这样,只需要库来满足动态链接的人就不必安装不需要的标头。但由于您正在进行开发,因此您需要这些标头,因此也需要 libappindicator-dev 包。
【讨论】:
-I/usr/include/libappindicator-0.1/libappindicator
您在这里尝试做的是制作一个 gtk 应用程序,上述解决方案在任何地方都适用 就像使用 -l 选项和 -I 选项一样,
但是,对于 GTK 应用程序,您也可以使用 pkg-config,因为您的路径可以预定义,因此更容易
http://www.freedesktop.org/wiki/Software/pkg-config
一个有趣的例子可以在这里找到 http://developer.gnome.org/gtk/2.24/gtk-compiling.html
【讨论】: