V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beric
V2EX  ›  问与答

vs2012 C++工程使用 mysql 库编译问题

  •  
  •   beric · 2017-06-14 23:51:41 +08:00 · 1655 次点击
    这是一个创建于 2478 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于工程需要 DEBUG 版本,在官方下了 mysql 的源码和 mysqlcppconn 的源码进行编译生成 DEBUG 版本的静态 LIB 库,然后在自己工程加入这两个库的时候用 DEBUG 编译就报错了。想问一下这个是什么原因导致?谢谢

    1>rcmysqlcpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __cdecl sql::SQLException::getSQLState(void)const " (__imp_?getSQLState@SQLException@sql@@QEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function __catch$?dbconn@rcmysqlcpp@@QEAAHXZ$0
    1>rcmysqlcpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl sql::SQLException::getErrorCode(void)const " (__imp_?getErrorCode@SQLException@sql@@QEBAHXZ) referenced in function __catch$?dbconn@rcmysqlcpp@@QEAAHXZ$0
    4 条回复    2017-06-15 19:29:26 +08:00
    xz
        1
    xz  
       2017-06-15 13:14:57 +08:00 via Android
    尴尬。又被艾特了
    gnaggnoyil
        2
    gnaggnoyil  
       2017-06-15 16:51:37 +08:00 via Android
    你这八成是 abi 没兼容吧。检查一下你的库和你自己用的 visual studio 版本是否一致。

    话说现在还用 vs2012 是不是太老了点,好多 cpp 新特性不能用
    beric
        3
    beric  
    OP
       2017-06-15 19:28:49 +08:00
    @xz 报错了……
    beric
        4
    beric  
    OP
       2017-06-15 19:29:26 +08:00
    @gnaggnoyil 嗯,搞好了,因为用了一些第三方库,那些库都要统一编译方式才行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2714 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:43 · PVG 23:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.