日期:2014-05-16  浏览次数:20634 次

如何在Ubuntu64位下配置Eclipse以使用GTK编程?
先感谢大家浏览!
我用的是64位的Ubuntu,已经按照好Eclipse Indigo和CDT。相关的依赖包也已经安装完成。经测试,在终端已经可以编译并显示用C语言写的gtk窗口。在Eclipse里也能编译普通的C和C++的命令行程序。

但在Eclipse里面,无论我怎么弄,都显示不了C编写的GTK窗口。我的用C编写的gtk程序的文件名为ctest。

我在工程的属性——C/C++ Build——Settings中设置了GCC Compiler——Miscellaneous——other flags中添加了`pkg-config --cflags --libs gtk+-2.0`,已经确定是反引号。在GCC Linker——Miscellaneous——Linker flags也设置了`pkg-config --cflags --libs gtk+-2.0`(如果在这一步是在Other Object中设置,编译时会提示:没有规则可以创建“libctest”需要的目标“`pkg-config --cflags --libs gtk+-2.0`”。 停止。//且我在Other Object中已经注意到把Eclipse自动添加的双引号删掉。)

根据国外网站上的在GCC Compiler和GCC Linker的Command line pattern中设置,得到的结果也是一样。

设置完成后,编译,出现错误,根据提示,我在编译指令中添加了-fPIC。再次编译,编译成功,提示:
make all 
Building target: libctest
Invoking: GCC C Linker
gcc -L`pkg-config --cflags --libs gtk+-2.0` `pkg-config --cflags --libs gtk+-2.0` -shared -o "libctest" ./src/ctest.o  
Finished building target: libctest

坑人啊,怎么编译的target是libctest。我要的是ctest啊!于是我在Run时,会提示找不到ctest的执行文件,或者有时会运行libctest,但什么也没发生,我尝试用命令行运行libctest,提示段错误。

在此请教各位,如何在Eclipse中顺利运行C编写的gtk程序?谢谢!在线等。


------解决方案--------------------
-shared去掉
------解决方案--------------------
加多了
other flags中添加了`pkg-config --cflags gtk+-2.0`,已经确定是反引号。在GCC Linker——Miscellaneous——Linker flags也设置了`pkg-config --libs gtk+-2.0`

linker的这个`pkg-config --libs gtk+-2.0`应该包含-l了,所以不需要再在前面加-l

一个编译开关 一个链接开关

还有你建立的是啥工程

命令行输入
pkg-config --cflags --libs gtk+-2.0 

输出结果是啥
------解决方案--------------------
gcc -L`pkg-config --cflags --libs gtk+-2.0` `pkg-config --cflags --libs gtk+-2.0` -shared -o "libctest" ./src/ctest.o 

-o 是用来制定输出的二进制文件啊,另外是不是加重了选项[align=left][/align]