2012-02-16 10 views
9

Próbuję użyć OpenSSL w mojej aplikacji metra. I stworzył C++ WinRTComponent i mieć pliki OpenSSL w ramach tego komponentuD8048: nie można skompilować pliku C "openssl applink.c" z opcją/ZW

Jednak gdy próbuję skompilować projekt, mam następujący błąd: D8048: cannot compile C file 'openssl\applink.c' with /ZW option

może ktoś mi powiedzieć jak mam rozwiązać ten problem, aby uzyskać mój projekt do kompilacji?

Proszę dać mi znać, jeśli potrzebujesz innych informacji, aby mi pomóc.

Dzięki,

Odpowiedz

20

komunikat o błędzie jest dokładnie to co mówi to jest - VC++ nie obsługuje rozszerzeń C++/CX - włączona z przełącznika/ZW kompilatora - w plikach kompilowanych jako C (co trochę sens, gdyż te rozszerzenia są obiektowe).

Powodem, dla którego to widzisz, jest to, że domyślnie wszystkie pliki w projekcie Metro C++ są kompilowane za pomocą/ZW. Niestety dotyczy to również plików .c, nawet jeśli tak naprawdę nie działa dla nich. Trzeba tylko selektywnie wyłączyć rozszerzenia dla tych plików. Możesz to zrobić klikając prawym przyciskiem myszy -> Właściwości w pliku lub wybranych plikach w Eksploratorze rozwiązań. W oknie dialogowym Strony właściwości przejdź do C/C++ -> Ogólne i znajdź "Włącz rozszerzenia czasu uruchamiania systemu Windows".

+0

Dzięki @ParvelMinaev, nie mam już tego błędu, zamiast tego mam LNK2019: nierozwiązany zewnętrzny symbol ... narzekający na niektóre nazwy metod openssl. Myślę, że jest to oddzielny problem niż ten post. Dziękuję bardzo. –

+0

@Louis_PIG naprawiłeś problem. Ogłosiłem extern "C" {} i zadziałało – onmyway133

Powiązane problemy