我试图自己编译Microsoft CRT 11(VS2012随附的版本)。编译Microsoft CRT 11(msvcrt110.dll) - 包含的正确顺序是什么?
我知道,直到VS2008这一行动完全由微软支持:
http://msdn.microsoft.com/en-us/library/k9a8ehy3(v=vs.90).aspx
但由于VS2010,你不应该这样做了,我意识到风险(主要是 - 编译它错了,有问题,你不能图或解决)
我使用下列目录来与VS输入代码和头文件:
Code:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src
Headers:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
C:\Program Files (x86)\Windows Kits\8.0\Include\shared
C:\Program Files (x86)\Windows Kits\8.0\Include\um
C:\Program Files (x86)\Windows Kits\8.0\Include\WinRT
(到目前为止,我所作的唯一更改是从项目中删除一些MSIL源代码)
大部分代码已经编译完成。但我不能编译文件
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src\assert.c
由于错误的:
error C3861: '_ReturnAddress': identifier not found
如果我添加
#include <intrin.h>
也就迎刃而解了。但我认为它应该是可以解决的,不需要直接修改代码。
当然,我不断面临新的挑战。但我认为解决当前问题的办法是修复头文件目录的包含顺序。应该使用哪个顺序的头文件目录?
坚果饼干。这是猜测他们使用的SDK版本。我怀疑windows头文件会像内部函数那样引入东西。 – 2014-11-22 23:26:51