我正试图在目标Linux系统中开发C应用程序,该系统需要Mysql连接,但我不知道在NETBEANS中包含libmysqlclient-dev库所需的指令。
我有以下内容:
- 安装
NETBEANS IDE 8.0.2
和远程构建主机的笔记本电脑。 - 远程
Ubuntu linux
目标,是netbeans的远程构建主机。 -
apt-get install libmysqlclient-dev
在Ubuntu目标 -
mysql_config --libs
给出:
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
-
mysql_config --libs
给出:
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
根据Mysql C Api构建,我必须包括以下内容:
gcc -c `mysql_config --cflags` progname.c
gcc -o progname progname.o `mysql_config --libs`
虽然我能够在目标系统中手动构建我的程序,但我不确定在Netbeans中添加上述信息的位置。
注:现在我的Netbeans构建命令看起来像这样:
gcc -o dist/Debug/GNU-Linux-x86/arguments_1 build/Debug/GNU-Linux-x86/src/args.o
P.S.2请温柔一点。我是Netbeans,远程构建,C和Linux开发的新手。
好的,我已经设法使它工作了。
首先,我需要包括Mysql库路径Netbeans makefile按照这篇文章:gcc不会编译和运行MySQL C库
# These are the flags that gcc requires in order to link correctly against our installed # client packages MYSQL_LIBS := $(shell mysql_config --cflags --libs)
然后右键单击我的项目节点,选择属性->构建->链接->编译行->附加选项,并在附加选项参数中添加$(MYSQL_LIBS)。
我的问题是我把它添加到C编译器的附加选项参数。
但这篇文章有助于澄清顺序:为什么库的链接顺序有时会在GCC中导致错误?
现在我的Netbeans gcc命令如下:
gcc -c -g -MMD -MP -MF "build/Debug/GNU-Linux-x86/src/args.o.d" -o build/Debug/GNU-Linux-x86/src/args.o src/args.c
gcc -o dist/Debug/GNU-Linux-x86/arguments_1 build/Debug/GNU-Linux-x86/src/args.o -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
谢谢Lumi, Thanassis