Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

D8048: cannot compile C file 'openssl\applink.c' with /ZW option

I am trying to use OpenSSL in my metro application. I created a C++ WinRTComponent and have openssl files under this component

However, when I try to compile the project, I got the following error: D8048: cannot compile C file 'openssl\applink.c' with /ZW option

Anyone can tell me how should I resolve this problem to get my project to compile?

Please let me know if you need any other info to help me.

Thanks,

like image 521
louis.luo Avatar asked Feb 16 '12 02:02

louis.luo


1 Answers

The error message is exactly what it says it is - VC++ does not support C++/CX extensions - enabled with /ZW compiler switch - in files compiled as C (which kinda makes sense, since those extensions are object-oriented).

The reason why you're seeing this is that, by default, all files in a Metro C++ project are compiled with /ZW. Unfortunately, this also applies to .c files, even though it doesn't actually work for them. What you need is to disable the extensions selectively for those files. You can do so via right-click -> Properties on a file or a selection of files in Solution Explorer. In the Property Pages dialog, navigate to C/C++ -> General, and look for "Enable Windows Run Time Extensions".

like image 191
Pavel Minaev Avatar answered Oct 29 '22 10:10

Pavel Minaev