【问题标题】:Linking Error Building 64bit Qt app on 32bit XP machine在 32 位 XP 机器上构建 64 位 Qt 应用程序时出现链接错误
【发布时间】:2010-06-02 16:13:31
【问题描述】:

我正在尝试在我的 32 位 xp 开发盒上构建我的应用程序的 64 位版本(是的,我确实需要内存),以便在我们的 Vista64 服务器上进行生产测试。

以前,我在 64 位模式下构建了没有任何错误的 Qt 4.6.2 DLL。这一步进展顺利。

为了开始构建生产,我正在尝试以 64 位模式重建 Qt 的 Star Delegate 演示。我通过更改应用程序配置并将库调整为 64 位鹿肉,将 32 位应用程序转换为 64 位应用程序。现在,当我去链接时,我在链接时收到以下错误

1>------ Build started: Project: stardelegate, Configuration: Release x64 ------
1>Linking...
1>MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol WinMain
1>release64\stardelegate.exe : fatal error LNK1120: 1 unresolved externals

建议?

edit - 经过更多搜索后,发现如果我链接为控制台应用程序,它将工作并运行。但不是作为 Windows 应用程序。而且我在32位模式下没有这个问题。

【问题讨论】:

  • 您是否使用WinMain、_tWinMain 或其他东西作为您的主要功能?另外,您能否发布链接器设置使用的入口点?谢谢。
  • 我使用标准的“int main()”和默认入口点。但是,您的评论使我总体上想到了“主要”。我将我的项目设置与一个有效的设置进行了比较,发现我忽略了包含 Qtmain,其中包含 WinMain 函数。它现在正在工作。谢谢,希望我能检查您的评论作为答案。

标签: c++ visual-studio qt linker 64-bit


【解决方案1】:

qt application 64 bit windows

编辑:没关系,你找到了。如果您不使用 CMake 或 qmake,则需要链接 qtmain,如下所述:http://doc.qt.io/archives/4.6/modules.html。

你不需要接受这个,因为我没有找到它,但只是为了让未来的人看到答案并且不会感到困惑。

【讨论】:

  • 感谢链接,但是,这是我们没有遇到的一个问题。我们的问题仅与链接 64 位应用程序有关,因为我们已经在 64 位模式下构建了 qt 库。
  • @photo_tom:你的链接器路径是什么样的?如该链接中所述(并且希望是显而易见的),如果您最终链接到具有 64 位构建的 32 位库,它将失败。确保链接路径中 32 位库不在 64 位库之前。
  • w - 你提出了一个关于我在提问之前检查过的链接路径的有效点。在混合的 32/64 位本机代码应用程序世界中工作绝对是您真正必须在构建中进行组织的地方。绝对是我必须努力的事情。我的问题原来是我不知道我需要在构建中包含 Qtmain.lib。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2014-11-27
相关资源
最近更新 更多