2012-02-16 3599 views
9

我正尝试在我的城域应用程序中使用OpenSSL。我创建了一个C++ WinRTComponent这部分下有OpenSSL的文件D8048:无法使用/ ZW选项编译C文件'openssl applink.c'

然而,当我尝试编译项目时,我得到了以下错误: D8048: cannot compile C file 'openssl\applink.c' with /ZW option

任何人都可以告诉我,我应该怎么解决这个问题得到我的项目编译?

请让我知道如果您需要任何其他信息来帮助我。

感谢,

回答

20

错误消息正是它说,这是 - VC++不支持C++/CX扩展 - 与/ ZW编译器开关启用 - 编译为C(这还挺有道理的文件,因为这些扩展是面向对象的)。

您看到这个的原因是,默认情况下,Metro C++项目中的所有文件都使用/ ZW编译。不幸的是,这也适用于.c文件,尽管它实际上并不适用于它们。您需要的是为这些文件选择性地禁用扩展名。您可以通过右键单击 - >解决方案资源管理器中的文件或选择的文件上的属性。在“属性页面”对话框中,导航到C/C++ - > General,然后查找“启用Windows运行时扩展”。

+0

谢谢@ParvelMinaev,我不再发生这个错误,而是我得到了LNK2019:无法解析的外部符号......抱怨一些openssl方法名称。我认为这是一个单独的问题比这篇文章。非常感谢。 – 2012-02-16 21:12:12

+0

@Louis_PIG你有没有解决这个问题。我宣布extern“C”{},它工作 – onmyway133 2013-06-26 03:30:57