【问题标题】:LNK2001 error when compiling windows forms application with VC++ 2008使用 VC++ 2008 编译 windows 窗体应用程序时出现 LNK2001 错误
【发布时间】:2010-01-24 21:41:51
【问题描述】:

我一直在尝试编写一个可以在 C++ 中与 mysql 一起使用的小型应用程序。我正在使用 MySQL 服务器 5.1.41 和 MySQL C++ 连接器 1.0.5。当我编写控制台应用程序时,一切都编译得很好,但是当我尝试以完全相同的方式(相同的库、相同的路径、相同的项目属性)编译 Windows 窗体应用程序时,我得到了这个错误:

Error   1   error LNK2001: unresolved external symbol "public: virtual int __clrcall sql::mysql::MySQL_Savepoint::getSavepointId(void)" (?getSavepointId@MySQL_Savepoint@mysql@sql@@$$FUAMHXZ)  test1.obj   test1
Error   2   error LNK2001: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __clrcall sql::mysql::MySQL_Savepoint::getSavepointName(void)" (?getSavepointName@MySQL_Savepoint@mysql@sql@@$$FUAM?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)   test1.obj   test1

按照here 的指示,我得到了这个:

Undecoration of :- "?getSavepointId@MySQL_Savepoint@mysql@sql@@UEAAHXZ"
is :- "public: virtual int __cdecl sql::mysql::MySQL_Savepoint::getSavepointId(void) __ptr64"

Undecoration of :- "?getSavepointName@MySQL_Savepoint@mysql@sql@@UEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ"
is :- "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl sql::mysql::MySQL_Savepoint::getSavepointName(void) __ptr64"

但我现在该怎么办?

【问题讨论】:

    标签: c++ mysql visual-studio-2008 linker


    【解决方案1】:

    Project + Properties,General,将公共语言运行时支持从 /clr:pure 更改为 /clr

    【讨论】:

    • 非常感谢,等了这么久
    【解决方案2】:

    看起来像是调用约定的问题。我对托管 C++ 不是很熟悉,但 this 可能会对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      相关资源
      最近更新 更多