做作业时需要c语言连接mysql数据库遇到了相当神奇的错误,好在在大神同学的帮助下解决了,,
首先根据网上的教程在
属性配置-C/C++-常规-附加包含目录中输入include文件夹路径,
在属性配置-链接器-常规-附加库目录输入lib所在的文件夹
在链接器-输入-附加依赖项中添加lib文件路径,出现报错现象
无法打开文件C:/Program Files/MySQL/MySQL Sever 5.7/lib.obj
网上有很多帖子说原因是由于该路径存在空格,需要加双引号,保证全路径不会改写,但是我的在加了双引号之后仍旧报出该错误,下面是在http://blog.csdn.net/theonegis/article/details/42913255
该网址看到的
介绍一下VC++中的包含目录:
“VC++ Directories -> Include Directories” : Directorysettings displayed in the window are the directories that Visual Studio willsearch for include files referred to in your source code files. Corresponds toenvironment variable INCLUDE.
在包含目录中的路径是Visual Studio将要从该目标路径中为你查找源代码文件中包含的文件
关于该目录:More information : http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.80).aspx
C/C++ -> 常规->附加包含目录:
“C/C++ -> General -> Additional IncludeDirectories”: The directory to be added to the list of directories searched forinclude files.
这里包含的路径将为了用于 查找包含的文件而加入查找路径的清单中,
关于该附加包含目录 : More information : http://msdn.microsoft.com/en-us/library/73f9s62w(v=vs.80).aspx
下面给出了编译器在编译过程中查找包含目录(Include文件)的顺序:
The compiler searches for directories in the followingorder:
编译器查找目录按照如下的顺序:
1.Directories containing the source file.资源文件所包含的目录
2.Directories specified with the /I option, in the orderthat CL encounters them.
3.Directories specified in the INCLUDE environmentvariable.
其中Order2中的/I是由C/C++ -> General -> Additional Include Directories设置的。
而Order3中的INCLUDE是由VC++ Directories -> Include Directories设置的。
同理,
1. VC++ Directories -> LibraryDirectories 库目录
2. Linker -> General -> Additional LibraryDirectories 附加库目录
也一样。
一般推荐在附加中添加自己的库目录等信息。
其实通过c语言连接数据库我们主要需要的是将mysql的libmysql.dll以及libmysql.lib文件读取到我们的项目中,所以我们换一种思路,仍旧在前面的c/c++常规-附加包含目录加入include连接器的常规-附加库目录加入lib文件路径,在附加依赖项中添加libmysql.lib文件,然后将libmysql.dll文件放在工程目录下即可,但此时程序仍旧会在编译时出错,此处报错忘记截图:
这个时候我们需要将配置管理器改为x64:
操作如下:这里也是在网上找的
1、 如果操作系统是64位,需要以下操作。(32位系统直接跳过此步骤)
2、将x项目属性页的C/C++->常规->附加包含目录指向:C:\Program Files\MySQL\MySQL Server 5.7\include
3、将项目属性页的链接器->常规->附加库目录指向:C:\Program Files\MySQL\MySQL Server 5.7\lib
4、将链接器->输入->附加依赖项中添加libmysql.lib
5、拷贝libmysql.dll到项目文件夹
在结束这一步操作后,程序可以运行,但在运行中报错
通过上网查找解决方法如下:
首先打开菜单 项目->项目属性页
1. 选择配置属性->连接器->调试->生成调试信息改为 是(本来这里是什么都没有的)
2. 选择 配置属性->c/c++->常规->调试信息格式改为用于编辑并继续的程序数据库(/ZI)
3. 选择配置属性->c/c++->优化->优化改为禁用(/Od)(原来是使速度最大化(/O2))
程序可以正常连接数据库了: