makefile链接mysql库文件路径_利用Autoconf和Automake制作Makefile文件时,如何连接进MYSQL的库和头文件?...

大家好,下面这个makefile文件是手工编写的,一直都用的很好,没有什么问题。

NAME = gameser

LINK = g++

CC = gcc

CCFLAGS += -g

CCFLAGS += -Wall

CCFLAGS += -I/usr/include/mysql

CCFLAGS += -DDEBUG

#CCFLAGS += -M

LINKOPTS += -L/usr/lib/mysql

LINKOPTS += -lmysqlclient

LINKOPTS += -lpthread

CPPFILES =poll.cpp /

java.cpp /

protocol.cpp /

logicgbmj.cpp /

game.cpp

$(NAME):$(CPPFILES:.cpp=.o)

$(LINK) -o $(NAME) $(CPPFILES:.cpp=.o) $(LINKOPTS)

.cpp.o:

$(CC) -c $< $(CCFLAGS)

clean:

rm -f $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(NAME)

最近想研究一下利用Autoconf和Automake自动生成makefile文件,网上关于这方面的文章都是一个简单的hello例子,不链接别人的 库,很是肤浅,而我自己的makefile文件需要MYSQL 库的支持,于是自己按照网上的步骤编写了configure.in文件和Makefile.am文件。但是make的时候说MYSQL里的一些函数未定 义。

文件autogen.sh如下:

#!/bin/sh

aclocal

autoheader

automake --add-missing

autoconf

文件configure.in如下:

# -*- Autoconf -*-

# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.59)

AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)

AM_INIT_AUTOMAKE(tempexe, 1.0.0)

AC_CONFIG_SRCDIR([protocol.h])

AC_CONFIG_HEADER([config.h])

AC_CONFIG_FILES(Makefile)

# Checks for programs.

AC_PROG_CXX

AC_PROG_CC

# Checks for libraries.

# Checks for header files.

AC_HEADER_STDC

AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h])

AC_CHECK_HEADERS(/usr/include/mysql/mysql.h)

AC_CHECK_LIB(/usr/lib/mysql/mysqlclient)

# Checks for typedefs, structures, and compiler characteristics.

AC_HEADER_STDBOOL

AC_C_CONST

AC_C_INLINE

AC_TYPE_SIZE_T

AC_STRUCT_TM

# Checks for library functions.

AC_FUNC_FORK

AC_PROG_GCC_TRADITIONAL

AC_FUNC_MALLOC

AC_FUNC_MEMCMP

AC_FUNC_STAT

AC_FUNC_VPRINTF

AC_CHECK_FUNCS([bzero dup2 inet_ntoa memmove memset socket strstr])

AC_OUTPUT (Makefile)

文件Makefile.am如下:

AUTOMAKE_OPTIONS= foreign

bin_PROGRAMS=tempexe

tempexe_SOURCES=game.cpp logicgbmj.cpp poll.cpp protocol.cpp qmysql.cpp java.cpp

执行./configure的时候下面的提示可疑,就是mysqlclient库没有找到:

checking for /usr/include/mysql/mysql.h... yes

checking for in -l/usr/lib/mysql/mysqlclient... no

./configure: line 7473: Makefile: command not found 命令没有发现,不知道这行是什么意思?

执行make的时候如下:

qmysql.h:6:19: mysql.h: 没有那个文件或目录

In file included from game.h:34,

from game.cpp:2:

qmysql.h:25: error: `MYSQL' does not name a type

qmysql.h:26: error: ISO C++ forbids declaration of `MYSQL_RES' with no type

qmysql.h:26: error: expected `;' before '*' token

make[1]: *** [game.o] 错误 1

make[1]: Leaving directory `/home/zsj/temp'

请各位大侠指点迷津,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值