IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    通用应用编译出错

    金庆发表于 2016-06-16 07:21:00
    love 0
    通用应用编译出错

    (金庆的专栏)

    编译lua5.3.2 Windows静态库时,创建VS2015工程时选择了
      Visual C++ -> Windows 通用 -> 静态库(通用 Windows).
     
    结果再选择按C++编译时报错:
    lua-5.3.2\src\loslib.c(132): error C3861: “system”: 找不到标识符

    跳到system()的定义:

    // APIs Only Available in Desktop Apps
    #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
        ...
        int __cdecl system(...);
        ...
    #endif // _CRT_USE_WINAPI_FAMILY_DESKTOP_APP

    看上去必须是桌面应用才有system()。

    以前用premake5生成的工程是能顺利编译的。
    于是又新建了premake5脚本来生成另一个工程,比较发现通用项目文件有:
        <AppContainerApplication>true</AppContainerApplication>
        <ApplicationType>Windows Store</ApplicationType>

    打开项目属性,看到
        目标平台:Windows 10
    并且不可更改。

    而Premake5生成的项目目标平台为 Windows, 也是不可更改。
    这样就明白了应该是工程创建时选错了模板。
    仔细查看,原来 Win32 项目包含了Dll和静态库,不应该与Window通用搞混。

    Window通用应用应该是Win10跨桌面与移动设备的应用。



    金庆 2016-06-16 15:21 发表评论


沪ICP备19023445号-2号
友情链接