【问题标题】:D8048: cannot compile C file 'openssl\applink.c' with /ZW optionD8048:无法使用 /ZW 选项编译 C 文件“openssl\applink.c”
【发布时间】:2012-02-16 02:51:37
【问题描述】:

我正在尝试在我的 Metro 应用程序中使用 OpenSSL。我创建了一个 C++ WinRTComponent 并在该组件下有 openssl 文件

但是,当我尝试编译项目时,出现以下错误: D8048: cannot compile C file 'openssl\applink.c' with /ZW option

谁能告诉我应该如何解决这个问题才能让我的项目编译?

如果您需要任何其他信息来帮助我,请告诉我。

谢谢,

【问题讨论】:

    标签: c++ .net openssl windows-8 microsoft-metro


    【解决方案1】:

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

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

    【讨论】:

    • 感谢@ParvelMinaev,我不再收到此错误,而是收到 LNK2019: unresolved external symbol... 抱怨一些 openssl 方法名称。我认为这是与这篇文章不同的问题。所以非常感谢。
    • @Louis_PIG 你解决了这个问题。我声明了 extern "C" {} 并且它起作用了
    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 2011-03-23
    • 2019-06-22
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多