gpt4 book ai didi

mysql - 如何将 mysql.h 和 my_global.h 包含到 Makefile.am 中?

转载 作者:行者123 更新时间:2023-11-29 14:26:47 31 4
gpt4 key购买 nike

我正在尝试创建一个可以通过这两个头文件与 MySQL 数据库通信的 C 程序:

mysql.h 
my_global.h

MySQL 附带了 mysql_config 脚本,您可以执行该脚本来查找包含文件和库文件驻留在系统中的位置。我想知道你如何在 Makefile.am 中定义它?

我目前有以下内容:

bin_PROGRAMS = db    
db_SOURCES = db.c db.h
db_CFLAGS = -Wall `mysql_config --cflags --libs`

这是正确的方法吗?

最佳答案

我会使用 AX_WITH_PROGconfigure.ac 中搜索 mysql_config宏:

AX_WITH_PROG([MYSQL_CONFIG], [mysql_config], [AC_MSG_ERROR(mysql_config is required to build)])

这样,如果程序安装在意外的位置,您的用户将能够将 MYSQL_CONFIG 环境变量指向该程序。如果用户尚未安装它,他们将收到一条不错的错误消息,在尝试构建之前提醒他们这一事实。

我可能还会在 configure.ac 中设置 cflags、cppflags 和 libs,因为它们在 configure 运行后不应更改:

MYSQL_CONFIG_CFLAGS=`$MYSQL_CONFIG --cflags`
MYSQL_CONFIG_CPPFLAGS=`$MYSQL_CONFIG --include`
MYSQL_CONFIG_LIBS=`$MYSQL_CONFIG --libs`
AC_SUBST([MYSQL_CONFIG_CFLAGS])
AC_SUBST([MYSQL_CONFIG_CPPFLAGS])
AC_SUBST([MYSQL_CONFIG_LIBS])

并将它们放在 Makefile.am

db_CFLAGS = -Wall $(MYSQL_CONFIG_CFLAGS)
db_CPPFLAGS=$(MYSQL_CONFIG_CPPFLAGS)
db_LDADD=$(MYSQL_CONFIG_LIBS)

如果您只需要头文件,则可能不需要设置 cflags 变量。

关于mysql - 如何将 mysql.h 和 my_global.h 包含到 Makefile.am 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10799185/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com