今天,我在archlinux上安装了代码块17.12。我在编译和链接时遇到问题。我发现了类似的问题,但是在here上的版本是13.12,但是我无法解决当前版本。
编译后,默认值为:
$compiler $options $includes -c $file -o $object
当我看到构建日志时执行的命令将是:
gcc -I / usr / include / gtk-2.0 -I / usr / lib / gtk-2.0 / include -I / usr / include / pango-1.0 -I / usr / include / glib-2.0 -I / usr /lib/glib-2.0/include -I / usr / include / fribidi -I / usr / include / cairo -I / usr / include / pixman-1 -I / usr / include / freetype2 -I / usr / include / libpng16 -I / usr / include / harfbuzz -I / usr / include / uuid -I / usr / include / gdk-pixbuf-2.0 -I / usr / include / atk-1.0 -pthread -Wall -g -c / home / ctnguyenvn /vuvo/Test_GTK/main.c -o obj / Debug / main.o
因此,默认情况下,gcc将使用gtk2进行编译,类似于链接器
这将导致错误,例如gtk3上的hello world
/home/ctnguyenvn/vuvo/Test_GTK/main.c:11:11:错误:类型名称未知
'GtkApplication';您是说'GApplication'吗?
激活(GtkApplication *应用,
^ ~~~~~~~~~~~~~
GApplication
我可以在编译时解决此问题,方法是将预先的代码块中的默认前端编辑为here
看到构建日志后执行的命令将是:
gcc`pkg-config --cflags gtk + -3.0` -c /home/sins/vuvo/Test_GTK/main.c -o obj / Debug / main.o
这样,编译过程可以正常工作,但是在链接时,默认绑定仍使用gtk2。
我试图按如下所示添加gtk3库here。但是似乎库是在以后添加的,但是链接时不必替换gtk2库
pkg-config --libs gtk+-3.0
”之前g ++ -o bin / Debug / Test_GTK obj / Debug / main.o -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2 -1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype
pkg-config --libs gtk+-3.0
” g ++ -o bin / Debug / Test_GTK obj / Debug / main.o -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2 -1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -pthread -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
我的问题:我想问how to change the default in the linker option
,因为当我使用终端链接到命令时
g ++`pkg-config --libs gtk + -3.0` -o obj / Debug / Test_GTK obj / Debug / main.o
没有默认选项,一切都很好
有人可以帮助我使用17.12版的代码块吗?
感谢您的阅读和对不起,因为我的英语不好。