【发布时间】:2013-04-27 20:15:12
【问题描述】:
当我尝试用 C 编译一个包含 mysql 库的自写项目时,我收到此错误:
gcc -c src/oDAO.c
src/oDAO.c:4:23: fatal error: my_global.h: No such file or directory
我将 my_global.h 包括在内:
#include <my_global.h>
出现错误,因为我的系统将头文件复制到 /usr/include/mysql/ 并且 gcc 仅在 /usr/include 中搜索系统头文件(没有子目录)。如何通过添加 /usr/include/mysql 作为附加共享库根来调用 gcc?
这是我的实际 Makefile:
all: main.o oDAO.o FileUtils.o DVDDAO.o
gcc -Llib -o oDAO main.o oDAO.o FileUtils.o DVDDAO.o -llinkedlist -lncurses `mysql_config --cflags --libs`
main.o:
gcc -c src/main.c
oDAO.o:
gcc -c src/oDAO.c
FileUtils.o:
gcc -c src/FileUtils.c
DVDDAO.o:
gcc -c src/DVDDAO.c
clean:
rm -f *.o
rm -f oDAO
rm -f *.bak
rm -f *.~
【问题讨论】:
-
您需要使用 mysql_config 来获取正确的编译和链接标志。
-
有一个开关,我知道...你看过 gcc 的手册页了吗?
-
说实话:gcc 的手册页太大了,我无法理解所有内容并找到我真正想要的东西......
-
@pausch 开关是 -I 和 -L 我在我的一个 make 文件中找到了它们。
标签: c gcc makefile shared-libraries