如何在现有Makefile中添加MariaDB链接配置?
在Makefile中添加MariaDB支持的解决方案
你可以通过以下步骤修改现有Makefile,整合MariaDB的编译链接配置:
- 新增MariaDB配置变量
在Makefile开头添加变量,单独存储mariadb_config输出的编译与链接参数,这样更便于维护:
# MariaDB相关配置 MARIADB_CFLAGS = $(shell mariadb_config --include) MARIADB_LIBS = $(shell mariadb_config --libs)
- 整合到编译与链接流程
- 将
MARIADB_CFLAGS追加到CFLAGS中,确保编译阶段能找到mysql.h头文件 - 将
MARIADB_LIBS添加到最终的链接命令里(也可以拆分出独立的LDFLAGS变量,让编译和链接参数更清晰)
- 修改后的完整Makefile
CC = gcc -Wno-unknown-pragmas -Wall -Wextra PKGCONFIG = $(shell which pkg-config) # 新增MariaDB配置 MARIADB_CFLAGS = $(shell mariadb_config --include) MARIADB_LIBS = $(shell mariadb_config --libs) # 合并原有编译参数与MariaDB头文件路径 CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-3.0) $(MARIADB_CFLAGS) -lbcm2835 -rdynamic -lm # 可选:拆分出独立的链接参数(更规范的写法) LDFLAGS = $(shell $(PKGCONFIG) --libs gtk+-3.0) $(MARIADB_LIBS) DEPS = LinkedList.h StructDefinitions.h %.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) OBJ = reTerminal.c \ Sensors/CpuGpuTemp.c Sensors/ReadSensores.c Sensors/TempSensorExtern.c \ Connectivity/ClientSide.c Connectivity/ServerSide.c \ GUI/MainApp.c GUI/MainAppWindow.c GUI/BasicFrame.c GUI/SimpleFrame.c \ Data/MariaDBTest.c Main: $(OBJ) # 两种写法二选一: # 写法1:直接在链接命令中加入MariaDB库 $(CC) -o $@ $^ $(CFLAGS) $(MARIADB_LIBS) # 写法2:使用拆分后的LDFLAGS(推荐) # $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
说明:
- 原Makefile将
pkg-config --libs放在CFLAGS里的做法不够规范(CFLAGS应为编译选项,LDFLAGS才是链接选项),上述示例提供了两种兼容方案,可根据习惯选择。 - 确保树莓派系统已安装
libmariadb-dev包(执行sudo apt install libmariadb-dev即可),否则mariadb_config命令会无法找到。
内容的提问来源于stack exchange,提问作者S. Schlegel
相关产品推荐
相关产品推荐

