报错:
LNK2001 无法解析的外部符号 __CxxFrameHandler4 demo_mysql F:\Project\3rdparty\ormpp\build\mysqlclient.lib(my_file.obj) 1
LNK2001 无法解析的外部符号 __GSHandlerCheck_EH4 demo_mysql F:\Project\3rdparty\ormpp\build\mysqlclient.lib(handshake_client.obj) 1
注意,后面提示是mysqlclient.lib中有符号链接不上,这点在开始时就被刻意地忽略了,说明对编译器处理链接过程的报错提示的理解还不是很透彻
只是在关注__CxxFrameHandler4和__GSHandlerCheck_EH4这两个报错没见过(没见过其实多正常,链接报错只是提示某个符号链接不上,这个符号在别人写的代码里,认不到很正常),误判,认为是工程设置有问题,导致链接不上mysqlclient.lib文件(其实mysqlclient.lib文件是链接上了的,不然不会说它里面有符号没链接上)
经过上面分析,回到正常道路上:
-
- 首先可以肯定
mysqlclient.lib文件被链接进来了
- 首先可以肯定
-
- 问题出在
mysqlclient.lib里有符号链接不上,亦即还有库没链接进来
经过正确分析:
在MYSQL\lib文件夹下面还有两个库文件未链接
mysqlservices.lib与libmysql.lib将该两个文件添加到链接,即解决问题
注意看错误提示,来判断到底是哪个链接不上符号
另外学习到MD与MT - 掘金 (juejin.cn)
- 问题出在