• 【VS开发】利用VS2015的工程文件来复制另外一个工程的配置的使用说明


    【VS开发】利用VS2015的工程文件来复制另外一个工程的配置的使用说明

    标签:【VS开发】


    说明:总是有时候会遇到这样的问题,在一个工程中完成了对某些PKG包的包含,包括头文件和库等都能发现,但是我新建的一个工程,然后通过复制那个工程的包含路径以及库文件包含等来实现在这个工程中也能使用的过程,你会发现有些时候在工程右键配置属性中就找不到它进行的路径配置,这常常让人十分恼火。现在终于尝试了一把直接复制工程文件,然后用文本编辑器来编辑它,最后用visual studio来导入,这样这个工程的属性就基本上能够完整的复制过来,同时需要修改一下相应的工程名称即可。下面举例说明:


    比如在配置caffe的时候,16个工程编译成功后,想在这个基础上开发我的训练或者其他工程,然后通过上面的方法总是无法找到第三方库和头文件,后来直接从原有的16个工程中复制了一部分代码到新建工程中的段落里,于是真的就可以识别并包含头文件了。

    主要这里使用的是通过Nuget得到的依赖库等!然后实际上这个.vcxproj文件实际上也是xml文件,我以前写安卓程序的时候有一段时间看过,不过还是忘记了。但是大致明白它的脉络,就是一段一段的,于是我把下面的一段沾到了我新建的工程中:

    <Import Project="......NugetPackagesOpenCV.2.4.10uild
    ativeOpenCV.props" Condition="Exists('......NugetPackagesOpenCV.2.4.10uild
    ativeOpenCV.props')" />
      <Import Project="......NugetPackageshdf5-v120-complete.1.8.15.2uild
    ativehdf5-v120.targets" Condition="Exists('......NugetPackageshdf5-v120-complete.1.8.15.2uild
    ativehdf5-v120.targets')" />
      <Import Project="......NugetPackagesglog.0.3.3.0uild
    ativeglog.props" Condition="Exists('......NugetPackagesglog.0.3.3.0uild
    ativeglog.props')" />
      <Import Project="......NugetPackagesgflags.2.1.2.1uild
    ativegflags.props" Condition="Exists('......NugetPackagesgflags.2.1.2.1uild
    ativegflags.props')" />
    

    还有一段:

     <ImportGroup Label="ExtensionTargets">
        <Import Condition="'$(CpuOnlyBuild)'=='false'" Project="$(VCTargetsPath)BuildCustomizationsCUDA $(CudaVersion).targets" />
        <Import Project="......NugetPackagesoost.1.59.0.0uild
    ativeoost.targets" Condition="Exists('......NugetPackagesoost.1.59.0.0uild
    ativeoost.targets')" />
        <Import Project="......NugetPackagesoost_chrono-vc120.1.59.0.0uild
    ativeoost_chrono-vc120.targets" Condition="Exists('......NugetPackagesoost_chrono-vc120.1.59.0.0uild
    ativeoost_chrono-vc120.targets')" />
        <Import Project="......NugetPackagesoost_date_time-vc120.1.59.0.0uild
    ativeoost_date_time-vc120.targets" Condition="Exists('......NugetPackagesoost_date_time-vc120.1.59.0.0uild
    ativeoost_date_time-vc120.targets')" />
        <Import Project="......NugetPackagesoost_filesystem-vc120.1.59.0.0uild
    ativeoost_filesystem-vc120.targets" Condition="Exists('......NugetPackagesoost_filesystem-vc120.1.59.0.0uild
    ativeoost_filesystem-vc120.targets')" />
        <Import Project="......NugetPackagesoost_system-vc120.1.59.0.0uild
    ativeoost_system-vc120.targets" Condition="Exists('......NugetPackagesoost_system-vc120.1.59.0.0uild
    ativeoost_system-vc120.targets')" />
        <Import Project="......NugetPackagesoost_thread-vc120.1.59.0.0uild
    ativeoost_thread-vc120.targets" Condition="Exists('......NugetPackagesoost_thread-vc120.1.59.0.0uild
    ativeoost_thread-vc120.targets')" />
        <Import Project="......NugetPackagesoost_python2.7-vc120.1.59.0.0uild
    ativeoost_python-vc120.targets" Condition="Exists('......NugetPackagesoost_python2.7-vc120.1.59.0.0uild
    ativeoost_python-vc120.targets')" />
        <Import Project="......NugetPackagesprotobuf-v120.2.6.1uild
    ativeprotobuf-v120.targets" Condition="Exists('......NugetPackagesprotobuf-v120.2.6.1uild
    ativeprotobuf-v120.targets')" />
        <Import Project="......NugetPackagesgflags.2.1.2.1uild
    ativegflags.targets" Condition="Exists('......NugetPackagesgflags.2.1.2.1uild
    ativegflags.targets')" />
        <Import Project="......NugetPackagesglog.0.3.3.0uild
    ativeglog.targets" Condition="Exists('......NugetPackagesglog.0.3.3.0uild
    ativeglog.targets')" />
        <Import Project="......NugetPackagesOpenBLAS.0.2.14.1uild
    ativeopenblas.targets" Condition="Exists('......NugetPackagesOpenBLAS.0.2.14.1uild
    ativeopenblas.targets')" />
        <Import Project="......NugetPackagesOpenCV.2.4.10uild
    ativeOpenCV.targets" Condition="Exists('......NugetPackagesOpenCV.2.4.10uild
    ativeOpenCV.targets')" />
        <Import Project="......NugetPackagesLevelDB-vc120.1.2.0.0uild
    ativeLevelDB-vc120.targets" Condition="Exists('......NugetPackagesLevelDB-vc120.1.2.0.0uild
    ativeLevelDB-vc120.targets')" />
        <Import Project="......NugetPackageslmdb-v120-clean.0.9.14.0uild
    ativelmdb-v120-clean.targets" Condition="Exists('......NugetPackageslmdb-v120-clean.0.9.14.0uild
    ativelmdb-v120-clean.targets')" />
      </ImportGroup>
    

    有了这两段,再加上重新配置一下配置管理器为x64平台,然后所有的头文件和库就可以正常使用了,所以说,好开心!


    后面还尝试了一下直接修改.vcxproj的名字,然后在里面修改一下对应的target和cpp的名字,然后用visual studio 2013进行加载,即可使用,还是不错的!!!


    2016-9-14 23:45
    张朋艺 pyZhangBIT2010@126.com

  • 相关阅读:
    Linux负载均衡--LVS(IPVS)主要算法实现分析
    使用alarm控制阻塞connect()超时的示例
    使用select控制非阻塞connect()超时的示例
    再出发
    nulls_hlist原理 和 tcp连接查找
    linux支持大容量硬盘
    Nmap扫描原理(下)
    linux常用命令
    Linux下面自动清理超过指定大小的文件
    Memcached介绍
  • 原文地址:https://www.cnblogs.com/huty/p/8518095.html
Copyright © 2020-2023  润新知