ODB踩坑——LNK2019+LNK1120+LNK2001

1 篇文章 0 订阅
0 篇文章 0 订阅

环境:Visio studio 2017;框架:ODB;语言:C++

C++使用ODB框架连接MSSQL数据库时,照着网络教程,也查阅了ODB的文档(https://www.codesynthesis.com/products/odb/doc/manual.xhtml#2.1),发现仍然会报错,错误内容都是“无法识别的外部符号”,报错同时出现LNK2019+LNK1120+LNK2001。

由于能够正常跑(odb-examples-2.4.0)内的例子,而且我也配置好了ODB的连接以及其他内容——包括包含文件,.lib和.dll文件的编译,也确保了项目配置好能正常寻找到对应文件,因此确定是某些配置文件中隐含的、相关文档没有指出的东西影响了编译。

    确定出错原因:(odb-examples-2.4.0)内的例子隐含的某项配置。

解决方法:经过一项一项比较配置,得到解决方法:

1、第一步,找到你的实体模型生成的(实体数据模型名-odb.cxx)文件,有键,选中属性。

注意:这里需要是选中单个(实体数据模型名-odb.cxx)文件,设置属性。这个(实体数据模型名-odb.cxx)文件,对应回(odb-examples-2.4.0)内的例子《hello》就是person-odb.cxx。

2、

第二步,对该(实体数据模型名-odb.cxx)文件,设置其预编译头为“不使用预编译头”。

注意:不能整个项目的属性选择“不使用预编译头”,否则你引入的其他库其他框架很可能会报错!

最后,正常编译,成功运行。

PS:以上解决方法是针对——项目debug和活动平台类型已经正确对应了odb-d-2.4-vc12.dll和odb-(数据库名)-d-2.4-vc12.dll;项目的属性配置已经正确添加了包含目录和库目录;确认ODB生成文件正确 的情况。在确保这些基本配置正确时,确认.lib和.dll没问题时,仍然出现“找不到外部符号”时,才用以上方式试试。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值