Próbuję samodzielnie skompilować Microsoft CRT 11 (wersja dostarczana wraz z VS2012).Kompilowanie Microsoft CRT 11 (msvcrt110.dll) - Jaka jest prawidłowa kolejność włączeń?
Jestem świadomy, że do VS2008 akcja ta została całkowicie obsługiwane przez firmę Microsoft:
http://msdn.microsoft.com/en-us/library/k9a8ehy3(v=vs.90).aspx
Ale ponieważ VS2010 nie mają już tego robić, i jestem świadomy ryzyka (głównie - kompilacji to źle, a problemy, których nie można ustalić lub rozwiązać)
Używam następujące katalogi, które pochodzą z VS jako kod i nagłówków plików wejściowych:
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
(Do tej pory jedyne zmiany, jakie wprowadziłem, to usunięcie niektórych źródeł MSIL z projektu)
Większość kodu już się kompiluje. Ale nie mogę skompilować plik
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src\assert.c
powodu błędu:
error C3861: '_ReturnAddress': identifier not found
Jeśli dodać
#include <intrin.h>
jest rozwiązany. Ale myślę, że to powinno być możliwe do rozwiązania bez bezpośrednich zmian w kodzie.
Oczywiście stale stawiam czoła nowym wyzwaniom. Ale myślę, że rozwiązaniem obecnego jest naprawienie kolejności włączania katalogów nagłówków. W jakiej kolejności powinny być używane katalogi nagłówków?
Trudne ciasteczka. To jest wersja, której użyli SDK. Podejrzewam, że nagłówki okien wciągają różne rzeczy, takie jak intrinsics. –