这是一系列至少两个密切相关但不同的问题的一部分。我希望我通过单独询问他们来做正确的事情。
我试图让我的 Visual C++ 2008 应用程序在没有 C 运行时库的情况下工作。这是一个 Win32 GUI 应用程序,没有 MFC 或其他花哨的东西,只是普通的 Windows API。
所以我将 Project Properties -> Configuration -> C/C++ -> Advanced -> Omit Default Library Names 设置为 Yes (compiler flag /Zl
) 并重建。假设我已经编写了一个合适的入口点函数,这是我另一个问题的主题。
我收到两个链接器错误;他们可能是相关的。链接器抱怨未解析的外部符号__fltused
和_memcpy
. foobar.obj
不用说,我在我的程序中都没有明确使用,但我确实memcpy
在foobar.cpp
. (我会使用CopyMemory
但结果是#define
d 与memcpy
...相同)
(我想我可以memcpy
通过使用编译器内在函数来解决这个问题,比如#pragma intrinsic(memcpy)
,但这没有区别。)
如果我查看预处理器输出(添加/P
到编译器命令行),我看不到任何__fltused
或_memcpy
in 的引用foobar.i
。
所以,我的问题是:这些链接器错误来自哪里,我该如何解决?