You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有Makefile中添加MariaDB链接配置?

在Makefile中添加MariaDB支持的解决方案

你可以通过以下步骤修改现有Makefile,整合MariaDB的编译链接配置:

  1. 新增MariaDB配置变量
    在Makefile开头添加变量,单独存储mariadb_config输出的编译与链接参数,这样更便于维护:
# MariaDB相关配置
MARIADB_CFLAGS = $(shell mariadb_config --include)
MARIADB_LIBS = $(shell mariadb_config --libs)
  1. 整合到编译与链接流程
  • 将MARIADB_CFLAGS追加到CFLAGS中,确保编译阶段能找到mysql.h头文件
  • 将MARIADB_LIBS添加到最终的链接命令里(也可以拆分出独立的LDFLAGS变量,让编译和链接参数更清晰)
  1. 修改后的完整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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:40:01