精华内容
下载资源
问答
  • VS2012兼容VS2010时注意平台工具集

    千次阅读 2013-12-18 09:55:04
    当2012打开2010的程序时,如果更新了平台工具集,会导致生成的可执行程序出问题,是因为用V110的平台工具集编译了V100的平台工具集,这是要在项目属性里设置平台工具集V100
    当2012打开2010的程序时,如果更新了平台工具集,会导致生成的可执行程序出问题,是因为用V110的平台工具集编译了V100的平台工具集,这是要在项目属性里设置平台工具集V100
    
    展开全文
  • Vs2019 低版本平台工具集解决办法 * 兼容2008~2017 平台工具集。 * 解压复制到C:\Program Files (x86)目录即可。 * 适用 Visual Studio 2019 ,11月份更新
  • 看官方资料说,更新到update1后,应该出现如下的图像,从而可以编译xp兼容的程序 [img=https://img-bbs.csdn.net/upload/201407/05/1404564767_700919.jpg][/img] 我的已经升级到update4了,为什么还是这样。。...
  • 受 Android 平台其他改进的影响,Android M 和 N 中的动态链接器对于编写整洁且具有跨平台兼容性的本机代码提出了更为严格的要求;满足这些要求的本机代码才能顺利完成加载。为确保平稳过渡到较新的 Android 版本,...

    受 Android 平台其他改进的影响,Android M 和 N 中的动态链接器对于编写整洁且具有跨平台兼容性的本机代码提出了更为严格的要求;满足这些要求的本机代码才能顺利完成加载。为确保平稳过渡到较新的 Android 版本,应用的本机代码必须遵循这些规则和建议。

    下面,我们将重申并详细说明与本机代码加载有关的各项变更及其影响,以及您可以采取哪些措施来避免出现问题。

    所需工具:在 NDK 中,每个架构都有一个 <arch>-linux-android-readelf 二进制文件(如 arm-linux-androideabi-readelf 或 i686-linux-android-readelf,位于 toolchains/ 下),但您可以对任何架构使用 readelf,因为我们将只进行基本检查。在 Linux 上,您需要为 readelf 安装“binutils”程序包,为 scanelf 安装“pax-utils”程序包。

    私有 API(从 API 24 开始实施)

    本机库只能使用公共 API,且不得链接到非 NDK 平台库。此规则从 API 24 开始实施,此后应用便无法再加载非 NDK 平台库。此规则由动态链接器执行,因此无论代码使用何种方式加载,都无法访问非公共库:System.loadLibrary(...)、DT_NEEDED 条目以及直接调用 dlopen(...) 都会同样失败。

    对于各项更新,用户获得的应用体验应该是一致的,而开发者应不必进行紧急更新应用以应对平台变更。因此,我们建议不要使用私有 C/C++ 符号。所有 Android 设备都必须通过的兼容性测试套件 (CTS) 并不包含对私有符号进行测试。此类符号可能不存在,也可能会采用不同的行为方式。这可能导致使用私有符号的应用在某些设备上,或在未来发布的新版本系统中无法使用。当 Android 6.0 Marshmallow 从 OpenSSL 切换到 BoringSSL 后,很多开发者都发现了这种问题。

    为了减少这种过渡对用户的影响,我们确定了 Google Play 上安装量最大的应用中颇为常用且我们短期内仍可提供支持的一些库(包括 libandroid_runtime.so、libcutils.so、libcrypto.so 和 libssl.so)。为了给您留出更多时间进行过渡,我们会暂时支持这些库;因此,如果看到表示您的代码在将来发布的版本中会无效的警告信息,请立即予以更正!

    
    
    1. $ readelf --dynamic libBroken.so | grep NEEDED 
    2.  0x00000001 (NEEDED)                     Shared library: [libnativehelper.so] 
    3.  0x00000001 (NEEDED)                     Shared library: [libutils.so] 
    4.  0x00000001 (NEEDED)                     Shared library: [libstagefright_foundation.so] 
    5.  0x00000001 (NEEDED)                     Shared library: [libmedia_jni.so] 
    6.  0x00000001 (NEEDED)                     Shared library: [liblog.so] 
    7.  0x00000001 (NEEDED)                     Shared library: [libdl.so] 
    8.  0x00000001 (NEEDED)                     Shared library: [libz.so] 
    9.  0x00000001 (NEEDED)                     Shared library: [libstdc++.so] 
    10.  0x00000001 (NEEDED)                     Shared library: [libm.so] 
    11.  0x00000001 (NEEDED)                     Shared library: [libc.so]  

    潜在问题:从 API 24 开始,动态链接器将无法加载私有库,从而导致应用无法加载。

    解决方案:重写本机代码,使其仅依赖公共 API。短期解决方案是:将没有复杂依存关系的平台库 (libcutils.so) 复制到项目;长期解决方案是将相关代码复制到项目树。SSL/Media/JNI internal/binder API 不得通过本机代码访问。必要时,本机代码应调用适当的公共 Java API 方法。

    NDK 的 platforms/android-API/usr/lib 下列出了所有的公共库。

    注意:SSL/crypto 是一种特殊情况,应用不得直接使用平台 libcrypto 和 libssl 库,即使在较早版本的平台上也不可以。所有应用都应使用 GMS 安全提供程序,以确保应用免遭已知漏洞攻击。

    缺少节标头(从 API 24 开始实施)

    每个 ELF 文件的节标头中都包含附加信息。现在,文件中必须有这些节标头,因为动态链接器要使用它们来进行健全性检查。有些开发者尝试通过删除这些节标头对二进制文件进行混淆处理,防止遭到反向工程。(这样做实际上并没有用,因为可以使用工具来重建已删除的信息,而这类工具到处都有。)

    
    
    1. $ readelf --header libBroken.so | grep 'section headers' 
    2.   Start of section headers:          0 (bytes into file) 
    3.   Size of section headers:           0 (bytes) 
    4.   Number of section headers:         0 
    5.  

    解决方案:从您的版本中移除用于删除节标头的额外步骤。

    文本重定位(从 API 23 开始实施)

    从 API 23 开始,共享对象不得包含文本重定位。也就是说,必须按原样加载代码,不得对其进行修改。这种方法可缩短加载时间并提高安全性。

    文本重定位的常见原因是使用了与非位置无关的手写编译器。这种情况并不常见。请使用我们的文档中所述的 scanelf 工具进一步诊断:

    
    
    1. $ scanelf -qT libTextRel.so 
    2.  
    3. libTextRel.so: (memory/data?) [0x15E0E2] in (optimized out: previous simd_broken_op1) [0x15E0E0] 
    4.  
    5. libTextRel.so: (memory/data?) [0x15E3B2] in (optimized out: previous simd_broken_op2) [0x15E3B0] 
    6.  
    7. [skipped the rest]  

    如果您没有可用的 scanelf 工具,可以改用 readelf 进行基本检查,查找 TEXTREL 条目或 TEXTREL 标记。查找其中一项就已足够。(TEXTREL 条目对应的值无关紧要且通常为 0,存在 TEXTREL 条目即表明 .so 包含文本重定位)。以下示例中同时存在这两种指示符:

    注意:从技术上来讲,可能存在带有 TEXTREL 条目/标记却不包含任何实际文本重定位的共享对象。NDK 中不会出现这种情况,但如果您要自行生成 ELF 文件,请确保不要生成声明包含文本重定位的 ELF 文件,因为 Android 动态链接器信任该条目/标记。

    潜在问题:重定位会强制使代码页面可写入,并会增加内存中的脏页数量,这非常浪费内存。从 Android K (API 19) 开始,动态链接器发布了有关文本重定位的警告,而在 API 23 及更高版本中,它拒绝加载包含文本重定位的代码。

    解决方案:重写编译器使其与位置无关,以确保不需要任何文本重定位。有关详细信息,请查看 Gentoo 文档。

    无效的 DT_NEEDED 条目(从 API 23 开始实施)

    虽然库依赖项(ELF 标头中的 DT_NEEDED 条目)可以是绝对路径,但在 Android 平台上却毫无意义,因为您无法控制系统将在何处安装库。DT_NEEDED 条目应与所需库的 SONAME 相同,将在运行时查找库的任务留给动态链接器。

    在 API 23 之前,Android 的动态链接器在查找所需库时会忽略完整路径,仅使用基本名称(最后一个“/”之后的部分)。从 API 23 开始,运行时链接器将完全遵循 DT_NEEDED,因此,如果设备的特定位置不存在库,链接器将无法加载相应库。

    更糟的是,有些构建系统存在漏洞,这会导致它们插入指向构建主机上的文件的 DT_NEEDED 条目,而在设备上却无法找到相应文件。

    
    
    1. $ readelf --dynamic libSample.so | grep NEEDED 
    2.  0x00000001 (NEEDED)                     Shared library: [libm.so] 
    3.  0x00000001 (NEEDED)                     Shared library: [libc.so] 
    4.  0x00000001 (NEEDED)                     Shared library: [libdl.so] 
    5.  0x00000001 (NEEDED)                     Shared library: 
    6. [C:\Users\build\Android\ci\jni\libBroken.so] 
    7.  

    潜在问题:在 API 23 之前使用的是 DT_NEEDED 条目的基本名称,但从 API 23 开始,Android 运行时将尝试使用指定路径加载库,但设备上却不存在该路径。有些已损坏的第三方工具链/构建系统使用的是构建主机而非 SONAME 上的路径。

    解决方案:确保所有所需的库仅由 SONAME 引用。最好让运行时链接器查找和加载这些库,因为库在不同设备上的位置可能有所不同。

    缺少 SONAME(从 API 23 开始使用)

    每个 ELF 共享对象(“本机库”)都必须具备 SONAME(共享对象名称)属性。NDK 工具链会默认添加此属性,如果此属性不存在,则表明备用工具链配置有误或构建系统中存在错误配置。缺少 SONAME 可能会导致运行时问题,例如加载错误的库:缺少此属性时会改为使用文件名。

    
    
    1. $ readelf --dynamic libWithSoName.so | grep SONAME 
    2.  
    3. 0x0000000e (SONAME) Library soname: [libWithSoName.so] 
    4.  
    5.  

    潜在问题:命名空间冲突可能会导致在运行时加载错误的库,进而导致在未找到所需符号时或您尝试使用非预期且不兼容 ABI 的库时系统崩溃。

    解决方案:最新版 NDK 会默认生成正确的 SONAME。请确保您使用的是最新版 NDK,且未将构建系统配置为生成不正确的 SONAME 条目(使用 -soname 链接器选项)。

    请注意,使用最新版 NDK 构建的整洁的跨平台代码应当可以在 Android N 上正常运行。我们建议您修改本机代码构建配置,以便生成正确的二进制文件。

    Android 的兼容性一直是很多开发者所关心的问题,我们将持续关注 Android 兼容性的变化,并发布一系列相关文章帮助大家及时了解。如果您在使用 NDK 工具集的过程中发现了我们尚未收录的 Android 兼容性问题,欢迎留言,我们将尽力寻找答案,并在新的文章中给予解答。





    本文作者:佚名
    来源:51CTO
    展开全文
  • 受 Android 平台其他改进的影响,Android M 和 N 中的动态链接器对于编写整洁且具有跨平台兼容性的本机代码提出了更为严格的要求;满足这些要求的本机代码才能顺利完成加载。为确保平稳过渡到较新的 Android 版本,...

    640?wx_fmt=gif


    640?wx_fmt=jpeg


    受 Android 平台其他改进的影响,Android M 和 N 中的动态链接器对于编写整洁且具有跨平台兼容性的本机代码提出了更为严格的要求;满足这些要求的本机代码才能顺利完成加载。为确保平稳过渡到较新的 Android 版本,应用的本机代码必须遵循这些规则和建议。


    下面,我们将重申并详细说明与本机代码加载有关的各项变更及其影响,以及您可以采取哪些措施来避免出现问题。


    所需工具:在 NDK 中,每个架构都有一个 <arch>-linux-android-readelf 二进制文件(如 arm-linux-androideabi-readelf 或 i686-linux-android-readelf,位于 toolchains/ 下),但您可以对任何架构使用 readelf,因为我们将只进行基本检查。在 Linux 上,您需要为 readelf 安装“binutils”程序包,为 scanelf 安装“pax-utils”程序包。



    私有 API(从 API 24 开始实施)

    本机库只能使用公共 API,且不得链接到非 NDK 平台库。此规则从 API 24 开始实施,此后应用便无法再加载非 NDK 平台库。此规则由动态链接器执行,因此无论代码使用何种方式加载,都无法访问非公共库:System.loadLibrary(...)、DT_NEEDED 条目以及直接调用 dlopen(...) 都会同样失败。


    对于各项更新,用户获得的应用体验应该是一致的,而开发者应不必进行紧急更新应用以应对平台变更。因此,我们建议不要使用私有 C/C++ 符号。所有 Android 设备都必须通过的兼容性测试套件 (CTS) 并不包含对私有符号进行测试。此类符号可能不存在,也可能会采用不同的行为方式。这可能导致使用私有符号的应用在某些设备上,或在未来发布的新版本系统中无法使用。当 Android 6.0 Marshmallow 从 OpenSSL 切换到 BoringSSL 后,很多开发者都发现了这种问题。


    为了减少这种过渡对用户的影响,我们确定了 Google Play 上安装量最大的应用中颇为常用且我们短期内仍可提供支持的一些库(包括 libandroid_runtime.so、libcutils.so、libcrypto.so 和 libssl.so)。为了给您留出更多时间进行过渡,我们会暂时支持这些库;因此,如果看到表示您的代码在将来发布的版本中会无效的警告信息,请立即予以更正!


    $ readelf --dynamic libBroken.so | grep NEEDED 0x00000001 (NEEDED) Shared library: [libnativehelper.so] 0x00000001 (NEEDED) Shared library: [libutils.so] 0x00000001 (NEEDED) Shared library: [libstagefright_foundation.so] 0x00000001 (NEEDED) Shared library: [libmedia_jni.so] 0x00000001 (NEEDED) Shared library: [liblog.so] 0x00000001 (NEEDED) Shared library: [libdl.so] 0x00000001 (NEEDED) Shared library: [libz.so] 0x00000001 (NEEDED) Shared library: [libstdc++.so] 0x00000001 (NEEDED) Shared library: [libm.so] 0x00000001 (NEEDED) Shared library: [libc.so]


    潜在问题:从 API 24 开始,动态链接器将无法加载私有库,从而导致应用无法加载。


    解决方案:重写本机代码,使其仅依赖公共 API。短期解决方案是:将没有复杂依存关系的平台库 (libcutils.so) 复制到项目;长期解决方案是将相关代码复制到项目树。SSL/Media/JNI internal/binder API 不得通过本机代码访问。必要时,本机代码应调用适当的公共 Java API 方法。

    NDK 的 platforms/android-API/usr/lib 下列出了所有的公共库。


    注意:SSL/crypto 是一种特殊情况,应用不得直接使用平台 libcrypto 和 libssl 库,即使在较早版本的平台上也不可以。所有应用都应使用 GMS 安全提供程序,以确保应用免遭已知漏洞攻击。



    缺少节标头(从 API 24 开始实施)

    每个 ELF 文件的节标头中都包含附加信息。现在,文件中必须有这些节标头,因为动态链接器要使用它们来进行健全性检查。有些开发者尝试通过删除这些节标头对二进制文件进行混淆处理,防止遭到反向工程。(这样做实际上并没有用,因为可以使用工具来重建已删除的信息,而这类工具到处都有。)


    $ readelf --header libBroken.so | grep 'section headers' Start of section headers: 0 (bytes into file) Size of section headers: 0 (bytes) Number of section headers: 0 $


    解决方案:从您的版本中移除用于删除节标头的额外步骤。



    文本重定位(从 API 23 开始实施)

    从 API 23 开始,共享对象不得包含文本重定位。也就是说,必须按原样加载代码,不得对其进行修改。这种方法可缩短加载时间并提高安全性。


    文本重定位的常见原因是使用了与非位置无关的手写编译器。这种情况并不常见。请使用我们的文档中所述的 scanelf 工具进一步诊断:


    $ scanelf -qT libTextRel.so libTextRel.so: (memory/data?) [0x15E0E2] in (optimized out: previous simd_broken_op1) [0x15E0E0] libTextRel.so: (memory/data?) [0x15E3B2] in (optimized out: previous simd_broken_op2) [0x15E3B0] [skipped the rest]


    如果您没有可用的 scanelf 工具,可以改用 readelf 进行基本检查,查找 TEXTREL 条目或 TEXTREL 标记。查找其中一项就已足够。(TEXTREL 条目对应的值无关紧要且通常为 0,存在 TEXTREL 条目即表明 .so 包含文本重定位)。以下示例中同时存在这两种指示符:


    注意:从技术上来讲,可能存在带有 TEXTREL 条目/标记却不包含任何实际文本重定位的共享对象。NDK 中不会出现这种情况,但如果您要自行生成 ELF 文件,请确保不要生成声明包含文本重定位的 ELF 文件,因为 Android 动态链接器信任该条目/标记。


    潜在问题:重定位会强制使代码页面可写入,并会增加内存中的脏页数量,这非常浪费内存。从 Android K (API 19) 开始,动态链接器发布了有关文本重定位的警告,而在 API 23 及更高版本中,它拒绝加载包含文本重定位的代码。


    解决方案:重写编译器使其与位置无关,以确保不需要任何文本重定位。有关详细信息,请查看 Gentoo 文档。



    无效的 DT_NEEDED 条目(从 API 23 开始实施)

    虽然库依赖项(ELF 标头中的 DT_NEEDED 条目)可以是绝对路径,但在 Android 平台上却毫无意义,因为您无法控制系统将在何处安装库。DT_NEEDED 条目应与所需库的 SONAME 相同,将在运行时查找库的任务留给动态链接器。

    在 API 23 之前,Android 的动态链接器在查找所需库时会忽略完整路径,仅使用基本名称(最后一个“/”之后的部分)。从 API 23 开始,运行时链接器将完全遵循 DT_NEEDED,因此,如果设备的特定位置不存在库,链接器将无法加载相应库。

    更糟的是,有些构建系统存在漏洞,这会导致它们插入指向构建主机上的文件的 DT_NEEDED 条目,而在设备上却无法找到相应文件。


    $ readelf --dynamic libSample.so | grep NEEDED
     0x00000001 (NEEDED)                     Shared library: [libm.so]
     0x00000001 (NEEDED)                     Shared library: [libc.so]
     0x00000001 (NEEDED)                     Shared library: [libdl.so]
     0x00000001 (NEEDED)                     Shared library:
    [C:\Users\build\Android\ci\jni\libBroken.so]
    $


    潜在问题:在 API 23 之前使用的是 DT_NEEDED 条目的基本名称,但从 API 23 开始,Android 运行时将尝试使用指定路径加载库,但设备上却不存在该路径。有些已损坏的第三方工具链/构建系统使用的是构建主机而非 SONAME 上的路径。


    解决方案:确保所有所需的库仅由 SONAME 引用。最好让运行时链接器查找和加载这些库,因为库在不同设备上的位置可能有所不同。



    缺少 SONAME(从 API 23 开始使用)

    每个 ELF 共享对象(“本机库”)都必须具备 SONAME(共享对象名称)属性。NDK 工具链会默认添加此属性,如果此属性不存在,则表明备用工具链配置有误或构建系统中存在错误配置。缺少 SONAME 可能会导致运行时问题,例如加载错误的库:缺少此属性时会改为使用文件名。


    $ readelf --dynamic libWithSoName.so | grep SONAME 0x0000000e (SONAME) Library soname: [libWithSoName.so] $


    潜在问题:命名空间冲突可能会导致在运行时加载错误的库,进而导致在未找到所需符号时或您尝试使用非预期且不兼容 ABI 的库时系统崩溃。


    解决方案:最新版 NDK 会默认生成正确的 SONAME。请确保您使用的是最新版 NDK,且未将构建系统配置为生成不正确的 SONAME 条目(使用 -soname 链接器选项)。

    请注意,使用最新版 NDK 构建的整洁的跨平台代码应当可以在 Android N 上正常运行。我们建议您修改本机代码构建配置,以便生成正确的二进制文件。


    640?wx_fmt=gif


    Android 的兼容性一直是很多开发者所关心的问题,我们将持续关注 Android 兼容性的变化,并发布一系列相关文章帮助大家及时了解。如果您在使用 NDK 工具集的过程中发现了我们尚未收录的 Android 兼容性问题,欢迎留言,我们将尽力寻找答案,并在新的文章中给予解答。


    推荐阅读:

    四月刊 | Google Play 开发者 FAQ

    移动应用设计:应用内搜索和业务转化

    Gameloft通过玩家邀请机制获得爆发式下载

    领取《出海宝典》,迈出成功出海的第一步!


    640?wx_fmt=gif


    展开全文
  • vs平台工具集 vs2010版本之后支持使用之前的版本编译,可以在属性->常规中找到。 需要安装对应的vs版本才可以使用各自对应的选项。其中vs2013中可以识别已经安装的vs2012(Visual Studio 2012 (v110))...

    不兼容要改工具集

    有时也要改字符集

    位置:项目-》项目属性-》配置属性.常规

     

    或者先选中项目,再同上。


     

     vs平台工具集

    vs2010版本之后支持使用之前的版本编译,可以在 属性->常规中找到。

    需要安装对应的vs版本才可以使用各自对应的选项。其中vs2013中可以识别已经安装的vs2012(Visual Studio 2012 (v110)), vs2012可以识别已安装的vs2010(Visual Studio 2010 (v100)),vs2010可以识别已经安装的vs2008(Visual Studio 2008(v90)).

    另外vs2012以后的版本,都有xp的选项。

     

    以上平台工具集的本质是msbuild,其文件所在目录为:

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0

    按照官方文档,v100(vs2010)之前的在Platforms目录中,之后的版本分别在V+版本号的目录中。

    如果想使用vs2008之前的版本,可以使用daffodil,下载地址http://daffodil.codeplex.com/

    安装之后目录如下:

    然后在平台工具集中就可以指定v60到v100的各个版本。

    vs平台工具集 - hillseas的专栏 - CSDN博客 http://blog.csdn.net/hillseas/article/details/47373313

    转载于:https://www.cnblogs.com/wxl845235800/p/7568792.html

    展开全文
  • Python研发工程师必备工具合集 1、必备工具 2、常用网站 ...1.功能强大、性能优良、界面美观、多平台兼容,但是收费;不过收费也不是很贵,有条件的还是建议买个正版,省事又方便。 2.国人(台湾人侯金吾)开...
  • 注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。 Doxygen 是一个程序的文件产生工具,可将程序中的特定注释转换成为说明文件...
  • 由于不同vs版本使用的平台工具集版本号不同,通过在属性页 - 配置属性 - 常规 - 平台工具集 填上$(DefaultPlatformToolset) ,大概意思就是使用默认工具集版本号,而这个版本号等于当前IDE的版本号,比如2012就是...
  • 工具旨在在运行时在静态场景上切换预烘焙的光照贴图和实时光照。 根据平台或内容的不同,切换可能不是即时的,而是要花几秒钟的时间,如果您只想更改照明,此脚本仅允许您避免重复场景。 此版本与unity 2017.4及...
  • VS2012编译兼容XP程序的方法

    千次阅读 2013-09-15 13:43:37
    实践证明,VS2012是能够编译出兼容XP的程序的,看来MS还没有放弃XP。 解决方法就是在工程属性里设置: 配置属性-〉常规-〉平台工具集-〉v110_xp,见下图 之后重新编译即可。
  • 一、软件介绍EDFBTools工具箱是一款基于autocad平台采用Visual Lisp语言专门针对桥梁工程师开发的小工具集工具箱。工具箱主要包含10大工具包,70多个小程序。因为软件全部采用Autocad平台内置的二次开发平台和开发...
  • 1、修改平台工具集 2、修改运行库 在编译执行便可在XP下正常运行。 PS:若程序引入第三方库,在修改运行库时可能会引起新的问题,这是因为编译第三方的库的问题,只需在用MTD重新编译第三方库即可。
  • VC2013生成的程序兼容WindowsXP操作系统flyfishVC2013生成的应用...define=BOOST_USE_WINAPI_VERSION=0x0501所有的DLL编译,EXE编译选项配置属性-》常规-》平台工具集 选择 Visual Studio 2013 - Windows XP (v120_xp)
  • VS高版本兼容XP系统

    2019-12-27 13:09:38
    VS2015使用的是V140的平台工具集,直接使用这个编译的话编译出来的的东西在XP上是无法使用的 只有改用V140XP的版本才能使用,这基本就解决了大部分的问题但是有的时候还是有问题例如 你编写一个DLL在XP下使用但是...
  • VS2015编译程序兼容XP

    千次阅读 2018-05-22 16:38:33
    前记 这几天被2015编译的程序要在xp上运行搞得想死,各种试,真的比写代码要痛苦,在此记下...平台工具集,选择“Visual Studio 2015 - Windows XP (v140_xp)”;  2. 项目菜单->项目属性->配置属性->...
  • vs2013-qt5编译兼容xp时常遇问题 ...配置属性-常规-平台工具集-Visual Studio 2013 - Windows XP 对于较早vs版本编译的动态库 以vs2008为例需要:msvcr90(d).dll,msvcp90(d).dll,msvcm90(d).dll,以
  • 平台工具集:Visual Studio 2013 - Windows XP (v120_xp)2. C/C++ 属性-> 代码生成-> 运行库,多线程调试: MdD->MTD3. 因为在XP系统中,还缺少QT应用的依赖类库。借助QT的工具windeployqt.exe 可以找到依赖...
  • 在Project的属性 选择 配置属性 - 常规 - 平台工具集 - Visual Studio 2012 - Windows XP (v110_xp) 在Project的属性 选择 配置属性 - C/C++ > 代码生成 - 运行库 - 多线程 (/MT) 在Project的属性 设置 配置...
  • vs2015 QT5.6 兼容xp系统

    2020-10-22 17:08:16
    说明: Qt5目前有两个长期支持版本(Long Term Support)Qt5.6和Qt5.9; Qt从5.7版本及以后不再支持WinXP系统,即编译生成的exe文件无法在WinXP系统运行,若要支持xp,推荐最...2、修改平台工具集 3、增加qma..
  • 前端小工具集 主题支持 跨平台兼容:Windows,Mac 相关链接: 下载:https://github.com/yaniswang/hostsPlus/releases 使用手册:...
  • Mono Migration Analyzer (Moma)是一个用于开发者使用的MS .net下开发的应用程序迁移到Mono平台的不兼容性检测工具工具通过分析.dll或者.exe程序的代码是否符合ECMA CLI,大家都知道符合ECMA CLI标准的.net 程序...
  • 在VS2013的解决方案中设置兼容XP比较简单,在项目的 属性-常规-平台工具集 中选择 v120_xp 即可。但如果是使用VS的命令行来编译某些程序时,要怎么办呢?在网上找到了一些资料,新建一个.bat文件,在VS命令行中首先...
  • VA虚拟平台十大亮点

    千次阅读 2020-12-02 16:26:52
    动态调整、实时预览、多页排版、自动打印六、向下兼容RDP协议”的接入模式——通用RDP七、安全接入与差异化管理八、虚拟应用超快分发——VAK之应用九、个人存储——像云盘一样存储数据十、强大的单点登录功能十一、...
  • SUAPP中文建筑插件集 1.0 是一款基于Google出品的SketchUP 7.0 版本(可兼容6.0系列)软件平台的强大工具集。包含有超过100项实用功能,大幅度扩展了SketchUP的快速建筑建模能力。方便的基本工具栏以及优化的右键菜单...
  • 1 项目属性页中的“配置属性”下面的“常规”里面,把“平台工具集”,由“Visual Studio 2013 (v120)”改成“Visual Studio 2013 - Windows XP (v120_xp); 2 目标框架4.5.1(VS2013自带的.net框架); 错

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 222
精华内容 88
关键字:

平台工具集兼容