D8048: не удается скомпилировать файл C «openssl\applink.c» с параметром /ZW.

Я пытаюсь использовать OpenSSL в своем приложении для метро. Я создал C++ WinRTComponent и имею файлы openssl под этим компонентом.

Однако, когда я пытаюсь скомпилировать проект, я получаю следующую ошибку: D8048: cannot compile C file 'openssl\applink.c' with /ZW option

Кто-нибудь может сказать мне, как мне решить эту проблему, чтобы мой проект скомпилировался?

Пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация, чтобы помочь мне.

Спасибо,


person louis.luo    schedule 16.02.2012    source источник


Ответы (1)


Сообщение об ошибке именно то, о чем говорится: VC++ не поддерживает расширения C++/CX, включенные с помощью переключателя компилятора /ZW, в файлах, скомпилированных как C (что имеет смысл, поскольку эти расширения являются объектно-ориентированными).

Причина, по которой вы видите это, заключается в том, что по умолчанию все файлы в проекте Metro C++ компилируются с параметром /ZW. К сожалению, это также относится к файлам .c, хотя на самом деле для них это не работает. Что вам нужно, так это выборочно отключить расширения для этих файлов. Вы можете сделать это, щелкнув правой кнопкой мыши -> Свойства файла или выбрав файлы в обозревателе решений. В диалоговом окне «Страницы свойств» перейдите к C/C++ -> «Общие» и найдите «Включить расширения времени выполнения Windows».

person Pavel Minaev    schedule 16.02.2012
comment
Спасибо @ParvelMinaev, я больше не получаю эту ошибку, вместо этого я получил LNK2019: неразрешенный внешний символ ... жалуюсь на некоторые имена методов openssl. Я думаю, что это отдельная тема, чем этот пост. Так что большое спасибо. - person louis.luo; 17.02.2012
comment
@Louis_PIG, вы исправили проблему? Я объявил extern C {}, и это сработало - person onmyway133; 26.06.2013