【问题标题】:Check whether a static library contains a main function in Windows检查静态库是否包含 Windows 中的 main 函数
【发布时间】:2014-03-12 10:39:08
【问题描述】:

我正在编写一个简单的 Windows 控制台应用程序,它通过

链接到一堆静态库
#pragma comment(lib, "SomeLibrary.lib");

(在这些库中有 SQLite3.lib)

当我启动我的程序时,我的 main 函数中的代码似乎没有被执行,而是出现了 sqlite 控制台应用程序的命令行属性。奇怪,不是吗?我能想象到的唯一原因是在其他地方(假设在静态 sqlite 库中)以某种方式定义了另一个主函数,并且该函数被执行。

这可能吗?有没有办法找出静态库中是否定义了主函数?有没有办法让我的主要功能优先于另一个?

【问题讨论】:

  • 使用 MS dumpbin 实用程序。

标签: c++ windows sqlite main


【解决方案1】:

sqlite3.lib 库有一个 main 函数,因为您将 SQLite 命令行 shell 的源代码编译到其中。

在没有shell.c 的情况下编译该库。 它应该只包含sqlite3.c

【讨论】:

  • 就是这样。我现在才自己想通了。不管怎么说,多谢拉。对于遇到类似问题的每个人:在 Visual Studio 中,我刚刚使用 F10 启动了调试器,它直接跳转到 SQLite 的主要功能。
猜你喜欢
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多