\n"); return 0; } 打开终端,输入gcc -o hello hello.c `pkg-config --cflags --libs glib-2.0`(注意:此处不是单引号...ccf@ccf-F81Se:~/WorkPlace/Glib库学习$ gcc -o hello hello.c `pkg-config --cflags --libs glib-2.0` ccf@ccf-F81Se...-o gtkbase `pkg-config --cflags --libs gtk+-2.0 gthread-2.0` ccf@ccf-F81Se:~/WorkPlace/gtk$ ls GTK2.0.../gtk$ gcc gtkbase.c -o gtkbase `pkg-config --cflags --libs gtk+-2.0 gthread-2.0` ccf@ccf-F81Se:~/WorkPlace...#makefile for gtkbase APP_NAME=gtkbase CC=gcc RM=-rm -f LIBS=`pkg-config --cflags --libs gtk+-2.0 gthread
: -L${libdir} -lpng12 -lz Cflags: -I${includedir}/libpng12 这个文件告诉我们这些库可以在/usr/local/lib找到,头文件可以在/usr...这儿是一个编译时使用pkg-config的样例: gcc -o test test.c $(pkg-config --libs --cflags libpng) pkg-config 同其他命令一样,有很多选项...DEPENDENCIES=libcpg libcmap libquorum libqb glib-2.0 fuse sqlite3 librrd CFLAGS += -I....CFLAGS += $(shell pkg-config --cflags ${DEPENDENCIES}) LDFLAGS += $(shell pkg-config --libs ${DEPENDENCIES...}) .c.o: $(CC) $(CFLAGS) -c -o $@ $< -MMD -MT $@ -MF $@.d ...
: error: Package requirements (expat) were not met: No package 'expat' found Consider adjusting the PKG_CONFIG_PATH...Alternatively, you may set the environment variables EXPAT_CFLAGS and EXPAT_LIBS to avoid the need to...call pkg-config....See the pkg-config man page for more details....#解决 export EXPAT_CFLAGS=/opt/bluez/expat-2.5.0/bin export EXPAT_LIBS=/opt/bluez/expat-2.5.0/lib 编译zlib
hash表是一种提供key-value访问的数据结构,通过指定的key值可以快速的访问到与它相关联的value值。hash表的一种典型用法就是字典,通过单词的首字母能够快速的找到单词。...1 /*************************************************************************** 2 file: g_hash.c...3 desc: 这个文件用于演示glib库中hash表的用法 4 compile: gcc -o g_hash g_hash.c `pkg-config --cflags --libs glib...` 5 ***************************************************************************/ 6 7 #include <glib.h...2、用g_hash_table_lookup()通过key可以查找到与它相对应的value,g_hash_table_replace()可以替换掉一个key对应的value。
下载安装 git clone https://github.com/Meituan-Dianping/MyFlash.git cd MyFlash/ yum install glib2* gcc -w `pkg-config...--cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback cd binary/ .
MySQL不同于oracle,没有闪回查询这类概念,但网上流传几个闪回的开源工具如 binglog2sql、MyFlash,可以使用binglog日志进行误操作数据的恢复。...Meituan-Dianping/MyFlash/archive/refs/heads/master.zip解压缩、动态编译链接:unzip master.zip && cd MyFlash-mastergcc -w `pkg-config...--cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback如编译时遇到复杂难解问题,可以换机器编译操作!
/aarch64-xilinx-linux -o hello hello.o -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed `pkg-config --cflags...--libs glib-2.0 gstreamer-1.0 gstreamer-app-1.0` -lpthread -ldl -lrt -Wl,-rpath-link, -Wl,-O1 -Wl,--...= -Wall CC = aarch64-xilinx-linux-gcc --sysroot=$(PLNX_AARCH_PATH) export PKG_CONFIG_PATH=$(PLNX_AARCH_PATH...OBJECTS = $(patsubst %.c,%.o,$(SOURCES)) CFLAGS = -DPLATFORM_ZCU106 -std=c11 all: hello hello: hello.o...$(CC) -o $@ hello.o $(LDFLAGS) %.o: %.c $(CC) -c $< $(CFLAGS) -o $@ clean: rm -f $(wildcard *.o
配置......在/ usr / bin中/ pkg配置 检查pkg-config 至少是0.9 版本 。...GNU / Linux ld.so检查如何将库路径硬编码到程序中...立即检查是否可以剥离库...是的,请检查libtool是否支持共享库。.....是的,检查是否要建立共享库...是,检查是否要构建静态库...是,检查构建环境是否正常...是,是否检查是否启用Makefile的维护者特定部分...不检查Win32 ...不检查pkg-config...... / usr / bin / pkg-config检查pkg-config至少是0.9.0版...是的检查GTK ...是的检查OpenGL ...是的检查Mesa ...否使用pthreads...状态:创建config.h config.status:config.h不变config.status:执行depfiles命令config.status:执行libtool命令---配置摘要*安装前缀
我们首先看一下: gcc -Wall hello.c `pkg-config fuse3 --cflags --libs` -o hello [root@docker pkgconfig]# cat fuse.pc...其实,pkg-config同其他命令一样,有很多选项,不过我们一般只会用到--libs和--cflags选项。更多的选项可以在这里查看。这样我们就简单了解到了pkg-config 命令是什么了?...比如$gcc main.c `pkg-config --cflags --libs gtk+-2.0` -o main就指定了要查找的.pc文件是gtk+-2.0.pc。...又比如,有第三方库OpenCV,而且其对应的pc文件为opencv.pc,那么我们在使用的时候,就要这样写`pkg-config --cflags --libs opencv`。...这样,pkg-config才会去找opencv.pc文件。 书写方法 只需写5个内容即可:Name、Description、Version、Cflags、Libs。
,即非局部跳转; :包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。...glib 可以在多个平台下使用,比如 Linux、Unix、Windows 等。glib 为许多标准的、常用的 C 语言结构提供了相应的替代物。...GTK+是可移植的,当然glib也是可移植的,你可以在linux下,也可以在windows下使用它。...使用gLib2.0(glib的2.0版本)编写的应用程序,在编译时应该在编译命令中加入pkg-config --cflags --libs glib-2.0,如: gcc pkg-config -...-cflags --libs glib-2.0 hello.c -o hello 使用glib最有名的就是GNOME了。
你可以试试执行gtk-config –libs –cflags,看看输出结果。...gtk-config --libs --cflags这样就差不多了。...,用pkg-config --list-all命令可以列出所支持的所有开发包,pkg-config的用法就是pkg-config pagName --libs --cflags,其中pagName是包名...,是pkg-config--list-all里列出名单中的一个,比如gtk1.2的名字就是gtk+,pkg-config gtk+ --libs --cflags的作用跟gtk-config --libs...:用来指定pkg-config用到的pc文件的路径,默认是/usr/lib/pkgconfig,pc文件是文本文件,扩展名是.pc,里面定义开发包的安装路径,Libs参数和Cflags参数等等。
安装包含在DIR [PREFIX / include]中 --mandir =在DIR安装手册页[PREFIX / share / man] --pkgconfigdir = DIR在DIR中安装pkg-config...[gcc] --nvcc = NVCC使用Nvidia CUDA编译器NVCC [nvcc] --ld = LD使用链接器LD [] --pkg-config = PKGCONFIG使用pkg-config...工具PKGCONFIG [pkg-config] --pkg-config-flags = FLAGS将附加标志传递给pkgconf [] --ranlib = RANLIB使用ranlib RANLIB...[ranlib] --doxygen = DOXYGEN使用DOXYGEN生成API doc [doxygen] --host-cc = HOSTCC使用主机C编译器HOSTCC --host-cflags...= HLIBS在链接主机时使用libs HLIBS --host-os = OS编译器主机OS [] --extra-cflags = ECFLAGS将ECFLAGS添加到CFLAGS []
pkg-config可以帮助我们方便地完成这些操作。...当需要编译一个使用libfoo库的C程序时,可以使用: gcc $(pkg-config --cflags libfoo) -o myprogram myprogram.c $(pkg-config -...-libs libfoo) 在这里,pkg-config --cflags libfoo和pkg-config --libs libfoo分别会输出编译和链接应用程序时需要的标志。...这样,其他开发者就可以通过pkg-config轻松地使用这个库。...: -I${includedir}/foo Libs: -L${libdir} -lfoo 总结 pkg-config是动态库管理和应用开发中非常有用的一个工具。
=/usr/local #默认目录 INSTALL_BIN=$(PREFIX)/bin #安装的默认目录 INSTALL=install PKG_CONFIG?...$(OPENSSL_CFLAGS) FINAL_LDFLAGS+=$(OPENSSL_LDFLAGS) LIBSSL_PKGCONFIG := $(shell $(PKG_CONFIG) --exists...ifeq ($(LIBSSL_PKGCONFIG),0) LIBSSL_LIBS=$(shell $(PKG_CONFIG) --libs libssl) else LIBSSL_LIBS=-lssl...endif LIBCRYPTO_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libcrypto && echo $$?)...ifeq ($(LIBCRYPTO_PKGCONFIG),0) LIBCRYPTO_LIBS=$(shell $(PKG_CONFIG) --libs libcrypto) else LIBCRYPTO_LIBS
安装: git clone https://github.com/Meituan-Dianping/MyFlash.git cd MyFlash gcc -w pkg-config --cflags -...-libs glib-2.0 source/binlogParseGlib.c -o binary/flashback cd binary ..../flashback --help --查看帮助 使用: 下面的这些参数是可以任意组合的。 * 1.databaseNames 指定需要回滚的数据库名。多个数据库可以用“,”隔开。...多个表可以用“,”隔开。如果不指定该参数,相当于指定了所有表。 3.start-position 指定回滚开始的位置。如不指定,从文件的开始处回滚。...多个类型可以用“,”隔开。 8.maxSplitSize 一旦指定该参数,对文件进行固定尺寸的分割(单位为M),过滤条件有效,但不进行回滚操作。
# Package Information for pkg-config prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/...: -ldl -lm -lpthread -lrt Cflags: -I${includedir} 检测系统中能否找到头文件 pkg-config --cflags opencv4 pkg-config...--libs opencv4 配置环境 上面的步骤做完后,在/etc/ld.so.conf.d的目录下可以看到opencv.conf的文件 使用VSCode打开后,里面是空白的,这时我们需要添加内容...,所以这里面最重要的一句就是"`pkg-config --libs --cflags opencv4`",双引号里面要加上单引号。...--libs --cflags opencv4`" ], "options": { "cwd": "${fileDirname}" },
使用下面的文件,可以编译目录下的所有C、C++文件。...-O3 LIBS = # Options for extra libraries #CFLAGS_OPENCV = `pkg-config opencv --cflags` #LIBS_OPENCV...= `pkg-config opencv --libs` # Find all C files and create object file list C_SRC = $(wildcard *.c).../include all: build build: $(APP) # Compile C files .c.o: $(CXX) -c $(CFLAGS) $(INC_PATH) -o $@...$< $(LIBS) # Compile Cpp files .cpp.o: $(CXX) -c $(CFLAGS) $(INC_PATH) -o $@ $< $(LIBS) $(APP):
/why.c Invoking: GCC C Compiler gcc "...../why.c" -I/usr/include/glib-2.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango...-1.0 -I/usr/include/cairo -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0.../include -I/usr/include/gtk-2.0 -O0 -g3 -Wall `pkg-config --cflags gtk+-2.0` -MMD -MP -MF"why.d" -MT"why.d...的方法配置过Eclipse;已经……包括非常多的头文件是由于提示找不到各个头文件,也尝试设置PKG_CONFIG_PATH
`pkg-config gtk+-2.0 --cflags --libs` 在电脑上执行....GCC=gcc ARMGCC=arm-linux-gnueabi-gcc ARMLIBS=`pkg-config gtk+-2.0 --cflags` -L/usr/arm-linux-gnueabi/...$(ARMGCC) -o testKindleGtk testGtk.c $(ARMLIBS) x86: gcc -o testGtk testGtk.c `pkg-config...gtk+-2.0 --cflags --libs` osx: export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig && gcc -o testGtk...testGtk.c `pkg-config gtk+-2.0 --cflags --libs` clean: rm $(keys) testGtk 项目的源码已经上传到github,有兴趣的可以下载试试
项目地址: MyFlash项目 安装: git clone https://github.com/Meituan-Dianping/MyFlash.git cd MyFlash gcc -w `pkg-config...--cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback cd binary ..../flashback --help --查看帮助 使用: 下面的这些参数是可以任意组合的。 1.databaseNames 指定需要回滚的数据库名。多个数据库可以用“,”隔开。...多个表可以用“,”隔开。如果不指定该参数,相当于指定了所有表。 3.start-position 指定回滚开始的位置。如不指定,从文件的开始处回滚。...多个类型可以用“,”隔开。 8.maxSplitSize 一旦指定该参数,对文件进行固定尺寸的分割(单位为M),过滤条件有效,但不进行回滚操作。
领取专属 10元无门槛券
手把手带您无忧上云