我正在从源代码构建一个开源项目,
并且需要包含<mysql.h>
:
#if USE_MYSQL
#include <mysql.h>
#endif
和compilor报告:
mysql.h no such file or directory
MySQL 是另一个更大的开源项目,我需要做些什么才能让它发挥作用?
答案 0 :(得分:6)
这完全取决于您的构建方法,无论是使用像Visual Studio,Eclipse等IDE,还是在* nix中使用shell脚本和命令行。
您需要确保该文件(mysql.h)存在于“包含”路径中。
例如,在Visual Studio中,您将进入:
项目属性 - &gt;配置属性 - &gt; C / C ++ - &gt;一般 - &gt;其他包含目录
并包含已保存“mysql.h”的目录。
然后,对于链接器属性,重复这些步骤并在附加库目录中包含相应的DLL / LIB文件路径
根据您的环境,这将有很大差异,因此需要更多信息才能确切地逐步完成。但这应该可以解释实际问题。
答案 1 :(得分:6)
对我来说,在Ubuntu 12.04上,我需要使用这个包含
#include <mysql/mysql.h>
答案 2 :(得分:1)
您是否尝试为include语句提供文件的完整路径?
答案 3 :(得分:1)
#include "path-spec"
#include <path-spec>
两种语法形式都会导致指定的include文件的全部内容替换该指令。两种形式之间的区别在于预处理器在路径未完全指定时搜索头文件的顺序。
#include "path-spec"
指示预处理器在包含#include语句的文件的同一目录中查找包含文件,然后在包含(#include)该文件的任何文件的目录中查找。然后,预处理器沿/ I编译器选项指定的路径搜索,然后沿INCLUDE环境变量指定的路径搜索。
#include <path-spec>
指示预处理器首先在/ I编译器选项指定的路径上搜索包含文件,然后在从命令行编译时,沿着INCLUDE环境变量指定的路径搜索。
我不知道您使用的是哪种编译器,但可能需要您将include和lib添加到编译中:
g++ bla.cpp -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient_r
答案 4 :(得分:1)
g ++ -o Programname $(mysql_config --cflags)Programfile.cpp $(mysql_config --libs)
Linux中的技巧。