精华内容
下载资源
问答
  • 外部依赖项总结

    2019-08-01 17:23:26
    一、什么是外部依赖项? 所谓外部依赖项就是工程中显式包含的那些头文件本身所包含的头文件(非自己定义),主要包含一些外部库。例如虽然在main里包含了一个windows.h,但是windows.h本身就包含相当多的头文件。而...

    一、什么是外部依赖项?

    所谓外部依赖项就是工程中显式包含的那些头文件本身所包含的头文件(非自己定义),主要包含一些外部库。例如虽然在main里包含了一个windows.h,但是windows.h本身就包含相当多的头文件。而这些头文件又包含更多的头文件。于是你的外部依赖项就变得很庞大。若想减少外部依赖项,那就尽量避免包含不必要的头文件。不过根据编译器的行为,可能编译时应该会过滤掉那些虽然包含进来,但完全没有用到的头文件,可以不必理会外部依赖项。

    二、外部依赖项的关联

    外部依赖项在编译时会递归关联起来生成可执行文件,所以可执行文件才会大很多;编译的时候,外部依赖项都是一个填充地址,比如代码里调用外部依赖函数地址Extern_funA。不编译的时候展开头文件,编译生成obj文件的时候,Extern_funA就是一个填充地址,比如0x00 00 00 00。链接的时候基地址重定位生成对应的Extern_funA地址,跟根据你的工程配置相应去查找DLL导出符号表,发现没有找到Extern_funA,那么就会出错,说无法定位外部符号。

    【另】资源文件:主要是你用到的一些程序代码以外的东西,比如图片、菜单、工具栏之类的。

    三、如何添加外部依赖项目?

    http://blog.csdn.net/kingepoch/article/details/24289627

    • 1、新建解决方案,项目A
    • 2、为项目A添加一个依赖项目B,项目B做为静态lib被项目A引用,

    项目B创建步骤如下:

    1>选择菜单”文件”->新建->项目,弹出“新建项目”对话框;

    2>左侧列表选择Visual C++,右侧列表选择win32控制台应用程序,对话框下面输入名称,选择位置,解决方案选择添加到解决方案,确定。

    3>Win32应用程序向导,下一步,选择应用程序类型为静态库,添加公共头文件以用于选择MFC(根据实际情况选择,因为项目需求<nb30.h>编译需要选择MFC),完成。

    • 3、项目配置,项目A右键选择属性,选择通用属性,引用->添加新引用->选择项目B;

    引用项目B的头文件目录,步骤如下:配置属性->VC++目录->包含目录:添加项目B头文件路径..\B\Header。

    其中编译的时候会出项目A引用项目B的接口无法解析,可能是3步骤没有做。
     

     

    展开全文
  • vs 外部依赖项 附加依赖项以及如何添加依赖项目
                         

    我们在 VS 中创建 Win32 控制台应用程序,vs 会为解决方案创建默认地创建 4 个 filters(资源管理器中没有对应的目录和文件夹):

    • 头文件:一般为 .h 文件
    • 外部依赖项
    • 源文件:一般为 .cpp文件
    • 资源文件

    1. 外部依赖项 & 资源文件

    • 外部依赖项:C++ 外部依赖项有很多,大部分都是静态库文件,编译的时候会递归关联起来生成可执行文件,所以可执行文件才会大很多

      编译的时候:  外部依赖项都是一个填充地址  , 比如 你的代码里调用 外部依赖函数地址 Extern_funA 。

      • 预编译的时候展开头文件
      • 编译生成obj文件的时候,Extern_funA 就是一个填充地址 比如 0x00 00 00 00
      • 链接的时候基地址重定位生成对应的 Extern_funA  地址。
      • 链接的时候会根据你的工程配置想一个去查找 DLL 导出符号表,发现没有找到 Extern_funA  。那么就会出错,说无法定位外部符号。

      右键【源文件】,选择【添加 ⇒ 新建项】,比如此时我们创建,test.cpp 文件,只需 include 一个文件:

      #include <iostream>
      • 1
      • 2
      • 3

      此时重新点开 【外部依赖项】filter,便会看到引入了相当多的库文件。

    • 资源文件:主要是你用到的一些程序代码以外的东西,比如图片之类,或者菜单、工具栏之类的。

    2. 库目录 & 附加依赖项

    库目录只是查找目录,类似环境变量 PATH;具体用哪一个需要指明的,如果不在附加依赖项里填上,就需要在代码里用

    #pragma comment(lib, “xxx.lib”)
    • 1

    来手动指定了。你写代码读写一个文件需要写明文件名吧,这个文件名就相当于那个lib , 但读写这个文件可以不写全路径,就是因为有工作目录(working directory)的存在。

    3. 添加依赖项目

    VS2013 添加依赖项目

    • 1、新建解决方案,项目A

    • 2、为项目A添加一个依赖项目B,项目B做为静态lib被项目引用,

      项目B创建步骤如下:

      • 选择菜单”文件”->新建->项目,弹出“新建项目”对话框;

      • 左侧列表选择Visual C++,右侧列表选择win32控制台应用程序,

        对话框下面输入名称,选择位置,解决方案选择添加到解决方案,确定。

      • Win32应用程序向导,下一步,选择应用程序类型为静态库,

        添加公共头文件以用于选择MFC(根据实际情况选择,因为项目需求<nb30.h>编译需要选择MFC),完成。

    • 3、项目配置,项目A右键选择属性,选择通用属性,引用->添加新引用->选择项目B;

      引用项目B的头文件目录,步骤如下:配置属性->VC++目录->包含目录:添加项目B头文件路径..\B\Header。

    其中编译的时候会出项目A引用项目B的接口无法解析,可能是3步骤没有做。

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • Maven引入外部依赖

    千次阅读 2018-01-03 15:54:25
    实际上,你一直都在使用外部依赖项,但这里我们会详细讨论它的工作原理。  pom.xml的dependencies列表列出了我们的项目需要构建的所有外部依赖项(它是否需要在编译时、测试时、运行时,或者其他什么)。现在,我们...

      您可能已经注意到我们一直在使用的POM中的依赖项元素。实际上,你一直都在使用外部依赖项,但这里我们会详细讨论它的工作原理。

      pom.xmldependencies列表列出了我们的项目需要构建的所有外部依赖项(它是否需要在编译时、测试时、运行时,或者其他什么)。现在,我们的项目只依赖于JUnit(为了清楚起见,我把所有的资源过滤都去掉了):

    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                          http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>Maven Quick Start Archetype</name>
      <url>http://maven.apache.org</url>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

      对于每个外部依赖项,您需要至少定义4个东西:groupIdartifactIdversionscopegroupIdartifactIdversion都与pom.xml中所提供的相同。用于构建该依赖项。scope元素指示您的项目如何使用该依赖项,并且可以是compiletestruntime时的值。

      有了关于依赖关系的信息,Maven将能够在构建项目时引用依赖项。Maven从哪里引用依赖关系?Maven在您的本地存储库中(${user.home}/.m2/repository是默认的位置)以查找所有的依赖项。在前一节中,我们将该工件从我们的项目(my-app-1.0-SNAPSHOT.jar)安装到本地存储库中。一旦它安装在那里,另一个项目就可以通过将依赖信息添加到它的pom.xml:将jar作为依赖项来引用。

    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                          http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-other-app</artifactId>
      ...
      <dependencies>
        ...
        <dependency>
          <groupId>com.mycompany.app</groupId>
          <artifactId>my-app</artifactId>
          <version>1.0-SNAPSHOT</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </project>

      每当项目引用本地存储库中不可用的依赖项时,Maven将从远程存储库下载依赖项到本地存储库。当您构建第一个项目时,您可能注意到Maven下载了很多东西(这些下载是用于构建项目的各种插件的依赖项)。默认情况下,远程Maven存储库使用可以(浏览)在http://repo.maven.apache.org/maven2/上找到。您还可以设置自己的远程存储库(可能是公司的中心存储库),而不是使用默认的远程存储库。有关存储库的更多信息,您可以参考存储库的简介。

      让我们为我们的项目添加另一个依赖项。假设我们已经在代码中添加了一些日志记录,并且需要将log4j作为一个依赖项添加。首先,我们需要知道对于log4jgroupIdartifactIdversion是什么。我们可以在浏览器中搜索ibiblio寻找它,或者使用谷歌搜索“site:www.ibiblio.org maven2 log4j”。搜索显示一个目录名为/maven2/log4j/log4j (或/pub/packages/maven2/log4j/log4j)。在该目录中有一个名为maven-metadata.xml的文件。以下是log4j的maven-metadata.xml看起来是这样的:

    <metadata>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.1.3</version>
      <versioning>
        <versions>
          <version>1.1.3</version>
          <version>1.2.4</version>
          <version>1.2.5</version>
          <version>1.2.6</version>
          <version>1.2.7</version>
          <version>1.2.8</version>
          <version>1.2.11</version>
          <version>1.2.9</version>
          <version>1.2.12</version>
        </versions>
      </versioning>
    </metadata>

      从这个文件中,我们可以看到我们想要的是“log4j”,而artifactId是“log4j”。我们看到许多不同的版本值可供选择;现在,我们将使用最新版本1.2.12(一些maven-metadata.xml文件还可以指定哪个版本是当前版本的版本)。在maven-metadata.xml文件,我们可以看到对应于log4j库的每个版本的目录。在这些文件中,我们将找到实际的jar文件(例如:log4j-1.2.12.jar)以及pom文件(这是依赖项的pom.xml,表示它可能拥有的任何进一步的依赖关系以及其他信息)和另一个maven-metadata.xml文件。还有一个对应于这些文件的md5文件,其中包含了这些文件的md5哈希。您可以使用它来对库进行身份验证,或者找出您可能正在使用的某个特定库的哪个版本。

      现在我们已经知道了所需的信息,我们可以将依赖项添加到我们的pom.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                          http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>Maven Quick Start Archetype</name>
      <url>http://maven.apache.org</url>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.12</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </project>

      现在,当我们编译这个项目(mvn compile)时,我们将看到Maven下载log4j依赖项。

      详细的代码可以参考下面的链接:

      最后再贴上Maven依赖的范围:

    标签名称 标签解释
    compile 这是默认范围,如果没有指定,就使用它。在所有类路径中都可以使用编译依赖项。此外,这些依赖关系被传播到依赖的项目中。
    provided 这非常类似于编译,但是表明您希望JDK或容器在运行时提供它。它只在编译和测试类路径中可用,且不具有传递性。
    runtime 这个范围表明了对编译的依赖不是必需的,而是用于执行。它在运行时和测试类路径中,而不是编译类路径。
    test 该范围表明,对应用程序的正常使用不需要依赖项,并且只适用于测试编译和执行阶段。它不传递。
    system 这个范围类似于提供的,除非您必须提供明确地包含它的JAR。工件总是可用的,并且没有在存储库中查找。
    展开全文
  • 我们在 VS 中创建 Win32 控制台应用程序,vs 会为解决方案创建默认地创建 4 个 filters(资源管理...外部依赖项:C++ 外部依赖项有很多,大部分都是静态库文件,编译的时候会递归关联起来生成可执行文件,所以可执行文

    我们在 VS 中创建 Win32 控制台应用程序,vs 会为解决方案创建默认地创建 4 个 filters(资源管理器中没有对应的目录和文件夹):

    • 头文件:一般为 .h 文件
    • 外部依赖项
    • 源文件:一般为 .cpp文件
    • 资源文件

    1. 外部依赖项 & 资源文件

    • 外部依赖项:C++ 外部依赖项有很多,大部分都是静态库文件,编译的时候会递归关联起来生成可执行文件,所以可执行文件才会大很多

      编译的时候: 外部依赖项都是一个填充地址 , 比如 你的代码里调用 外部依赖函数地址 Extern_funA 。

      • 预编译的时候展开头文件
      • 编译生成obj文件的时候,Extern_funA 就是一个填充地址 比如 0x00 00 00 00
      • 链接的时候基地址重定位生成对应的 Extern_funA 地址。
      • 链接的时候会根据你的工程配置想一个去查找 DLL 导出符号表,发现没有找到 Extern_funA 。那么就会出错,说无法定位外部符号。

      右键【源文件】,选择【添加 ⇒ 新建项】,比如此时我们创建,test.cpp 文件,只需 include 一个文件:

      
      #include <iostream>
      
      • 1
      • 2
      • 3

      此时重新点开 【外部依赖项】filter,便会看到引入了相当多的库文件。

    • 资源文件:主要是你用到的一些程序代码以外的东西,比如图片之类,或者菜单、工具栏之类的。

    2. 库目录 & 附加依赖项

    库目录只是查找目录,类似环境变量 PATH;具体用哪一个需要指明的,如果不在附加依赖项里填上,就需要在代码里用

    #pragma comment(lib, “xxx.lib”)
    • 1

    来手动指定了。你写代码读写一个文件需要写明文件名吧,这个文件名就相当于那个lib , 但读写这个文件可以不写全路径,就是因为有工作目录(working directory)的存在。

    3. 添加依赖项目

    VS2013 添加依赖项目

    • 1、新建解决方案,项目A

    • 2、为项目A添加一个依赖项目B,项目B做为静态lib被项目引用,

      项目B创建步骤如下:

      • 选择菜单”文件”->新建->项目,弹出“新建项目”对话框;

      • 左侧列表选择Visual C++,右侧列表选择win32控制台应用程序,

        对话框下面输入名称,选择位置,解决方案选择添加到解决方案,确定。

      • Win32应用程序向导,下一步,选择应用程序类型为静态库,

        添加公共头文件以用于选择MFC(根据实际情况选择,因为项目需求<nb30.h>编译需要选择MFC),完成。

    • 3、项目配置,项目A右键选择属性,选择通用属性,引用->添加新引用->选择项目B;

      引用项目B的头文件目录,步骤如下:配置属性->VC++目录->包含目录:添加项目B头文件路径..\B\Header。

    其中编译的时候会出项目A引用项目B的接口无法解析,可能是3步骤没有做。

                <link rel="stylesheet" href="http://csdnimg.cn/release/phoenix/production/markdown_views-d4dade9c33.css">
                    </div>
    
    展开全文
  • SVN外部依赖问题

    2018-05-02 17:26:09
    查了原因,发现是该项目外部依赖了其他的文件,那些文件放到了另外的SVN上面,需要将其链接过来。用eclipse分别导入这两个工程,会自动关联外部依赖的工程,查其原因,在eclipse的.project中有了link的依赖(怎么...
  • Maven外部依赖

    千次阅读 2014-12-06 18:19:24
    Maven提供为使用外部依赖的概念,应用在这样的场景。 举一个例子,让我们做以下修改项在目Maven创建项目 这一章节中创建。 添加lib文件夹到src文件夹 复制任何的jar到lib文件夹。我们使用ldapjdk.jar,这...
  • 外部依赖项目的含义

    2019-06-25 17:30:20
    外部依赖项目的含义 显式包含的那些头文件本身所包含的头文件。 里面显示的你程序中显示包含的头文件所包含的的头文件。 比如,你的main函数里面包含了windows.h头文件,而windows.h头文件又包含其他头文件,而这些...
  • python离线安装外部依赖

    千次阅读 2019-07-09 15:14:32
    python离线安装外部依赖包 引用网址:https://www.cnblogs.com/sunyllove/p/9888955.html 自码留存: 1.制作requirement.txt pip freeze > requirement.txt 内网安装外部依赖包办法: 例如:安装pytest包得时候...
  • 今天用idea导入项目代码的时候始终无法加载外部依赖,External Libraries为空导致JDK外的依赖包导入失败,咋回事呢? 一般通过正常import as maven项目是可以正常导入并且加载外部依赖的,由于不规范导入或直接open...
  • VS资源文件和外部依赖

    千次阅读 2015-03-26 14:44:27
    2、VS外部依赖项是什么 3、VS2012d的MSDN帮助文档的下载外部依赖项:里面显示的文件是你程序中显示包含的头文件所包含的的头文件。比如,你的main函数里面包含了windows.h头文件,而windows.h头文件又包含其他...
  • IDEA打jar包(带外部依赖

    千次阅读 2020-03-24 16:56:36
    工作中做了发送钉钉消息的功能,脚本中使用了钉钉的相关api,打jar包时,就需要带上这个外部依赖。 使用的框架:springboot 网上有很多maven 打包时,加入外部依赖的配置,但结果五花八门,看的人眼花,就使用了最...
  • idea使用maven引入外部依赖目录

    千次阅读 2019-07-01 18:23:39
    idea使用maven引入外部依赖目录并打包为可执行的jar包,使用jd-gui反编译工具。
  • 在导入aar时,若aar存在外部依赖,有两种方法可以解决 1.将aar的外部依赖复制到主项目里 2.上传到maven仓库 这里采用讲maven上传到本地仓库 1.在aar的模块build.gradle中添加 apply plugin: '...
  • Maven添加外部依赖的两种常用方法方法一,添加jar包到项目方法二:安装依赖到本地 方法一,添加jar包到项目 pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项,我们一般是先在...
  • 十、Maven外部依赖

    千次阅读 2015-11-18 11:19:03
    Maven提供为使用外部依赖的概念,应用在这样的场景。 举一个例子,让我们做以下修改项在目Maven创建项目 这一章节中创建。 添加lib文件夹到src文件夹 复制任何的jar到lib文件夹。我们使用ldapjdk.jar,...
  • maven打包时引入外部依赖jar

    千次阅读 2018-11-12 18:09:46
    maven打包时引入外部依赖jar 需求说明: A项目项目中依赖了b.jar,但是b.jar并非maven上的jar包,而是直接放在main/resouces/lib的文件夹下,现在A项目项目打包时,需要将b.jar放在A生成的jar包中,结构如下: 实现...
  • eclipse中为项目添加外部依赖jar包

    千次阅读 2019-10-02 16:35:56
    #eclipse中为项目添加外部依赖jar包 1.右击项目名 选择build path->configure build path->然后点击 2.之后点击 Add Externl JARS 选择下载好的jar包,点击打开 3.点击Apply 4.点击ok,关闭窗口完成配置 ...
  • springboot引入外部依赖jar包并打包

    千次阅读 2019-11-19 16:32:39
    在lib文件夹中放入要添加的外部依赖 进入pom文件中,在dependencies节点中将依赖添加 <dependency> <groupId>taobao-sdk-java-auto</groupId> <artifactId>sdk</artifactId> ...
  • Java运行jar包指定外部依赖的jar

    千次阅读 2019-09-10 14:06:01
    程序在启动时经常会遇到指定外部依赖jar包的情况。 1. Bootstrap Classloader方式: //在系统class加载后加载 java -Xbootclasspath/a: yilai1.jar:yilai2.jar: -jar test.jar 注意:依赖的jar包间用冒号分割 ...
  • 用vs2010建立的MFC程序,怎么在外部依赖项中再添加.h文件
  • 首先说一下比较常用的两种打包方式: 前提:maven构建可执行jar包时,如果项目依赖了pom中定义的dependency之外的外部jar包,maven-...打包成可执行jar文件,但是将所有依赖(包括外部依赖)单独打包到另外一个指...
  • Visual Studio2010中的外部依赖

    千次阅读 2015-09-28 09:55:22
    Visual Studio2010中的项目下拉列表下面有外部依赖项,里面显示的文件是你程序中显示包含的头文件所包含的的头文件。比如,main函数里面包含了windows.h头文件,而windows.h头文件又包含其他头文件,而这些头文件又...
  • 什么叫外部依赖

    千次阅读 2014-12-18 21:10:41
    所谓外部依赖项就是你工程中显式包含的那些头文件本身所包含的头文件。 比如你仅仅在main里包含了一个windows.h,但是windows.h本身就包含相
  • 外部依赖项:头文件依赖的头文件(非自己定义),主要包含一些外部库。 头文件:.h文件,内含函数声明、宏定义、结构体定义等内容。 源文件:.c或.cpp文件,函数实现,变量定义等内容。 资源文件:图片等程序...
  • vs中项目的外部依赖项是什么意思

    千次阅读 2017-02-20 23:28:46
    外部依赖项就是你工程中显式包含的那些头文件本身所包含的头文件。 vs2010中的项目下拉列表下面有外部依赖项,里面显示的文件是你程序中显示包含的头文件所包含的的头文件。比如,你的main函数里面包含了...
  • 工具->选项->文本编辑器->C/C++->高级->禁用外部依赖项文件夹文章来源:http://bbs.csdn.net/topics/390885741
  • Maven(三)——添加外部依赖

    千次阅读 2016-07-18 16:29:57
    参考... ... 2、添加依赖只要添加<dependency>标签即可。 ...3、如果maven自动更新外部依赖失败,可以自行下载相应的文件,存放到本地仓库(Repository)即可。 注:目录结...
  • 通过C++的外部依赖项的感悟

    千次阅读 2018-04-07 17:01:09
    外部依赖性在这里(其实很容易被忽略)!但是由它可以看到许多隐藏的东西!它能说明什么问题?看右边程序源代码中直接使用system("pause");而学过C语言的小伙伴们应该都晓得,要使用这个函数,必须要引入...
  • springboot引入外部依赖jar包

    万次阅读 2018-11-13 09:33:39
    pom.xml相关内容: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.cmstk_api&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;sdk&amp;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 466,547
精华内容 186,618
关键字:

外部依赖