我有3台造型机.一个运行在Windows 2000上,一个运行XP SP3,另一个运行64位Windows Server 2008.我有一个原生的C++项目要构建(我正在使用visual studio 2005 SP1构建).我的目标是使用这些构建机器"完全"构建相同的dll.
确切地说,我的意思是一点一点(当然除了构建时间戳).
有了win2k和winxp,我就得到了相同的dll.但它们与使用win2008服务器构建的dll不同.我已经设法得到几乎相同的dll,但有一些差异.在反汇编文件后,我发现函数顺序不一样(3个函数的顺序不同).
有谁知道这可能是什么原因?
还有一个问题:在vcbuild.exe中我找到了一个开关/ ORDER.以功能订单文件为输入.任何人都知道该文件应该是什么样的?
我对Windows上的源代码二进制文件有疑问.
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
相同的源代码,我在Windows上编译了两次(VS 2008 Cmmand Prompt:"CL"),但我得到了不同的二进制文件.
cl new.cpp
Run Code Online (Sandbox Code Playgroud)
你们能告诉我为什么,以及如何避免这种情况?