zoukankan      html  css  js  c++  java
  • 调用第三方库出现的问题

          运行一个需要调用第三方库的小程序本应该是很简单的事情,但是要想顺利地把程序跑起来首先要迈的第一道坎就是正确的配置路径和编译环境。鉴于前两次在开始调用时,状况百出而我却无从下手,所以非常有必要回顾一下最基本的问题。

      在windows 环境下,从编写到运行需要两个步骤:① 首先写好源文件(.c),经过cl.exe编译器编译,从而生成了.obj 目标文件【编译】

    ② 生成的目标文件(.obj)再结和库文件(.lib)经过link.exe 链接器从而生成可执行文件。【链接】【运行】*.h   *.lib   *.dll 这些很常见却又纷繁复杂带有不同后缀的文件又具体在哪些环节扮演什么样的角色呢?  .h(header头文件)是编译时候必须的,lib是链接时需要的,而dll(动态链接库)则是运行时候需要的。lib文件的作用是告诉链接器,调用的函数在哪个dll中,函数执行代码在dll中的什么位置,这也就是为什么需要附加依赖项.lib文件。当然如果是静态库文件,则没有dll,只有lib,这是函数可执行代码部分也在lib文件中。 

      而要想链接第三方库往往有以下三件事情要做:(摘自:http://stackoverflow.com/questions/35008426/link-3rd-party-library-in-visual-studio)

    1. 需要加入include 路径

    方法:工程(project)-->属性(Properties)--> C/C++-->常规(General)-->附加包含目录(additional Include Directories)

    点击编辑(edit),选中*.h所在的文件路径

    2. 链接库文件(*.lib file)

    方法:工程(project)-->属性(Properties)--> 链接器(linker)-->常规(General)-->附加库目录(additional Library Directories)

    工程(project)-->属性(Properties)--> 链接器(linker)-->输入(Input)-->附加依赖项(Additional Library),增加想链接的库

    3. 在工程目录下提供*.dll

    程序正确运行必须要找到相应的*.dll 文件,要么参考PATH变量把它放到相应文件夹下,要么在当前的运行路径下,一般在*.vcxproj文件的旁边。

    如果调用的是静态库,那么可以跳过步骤二,如果是一个动态的库跳过步骤三

    输入(Input)-->,点击编辑

  • 相关阅读:
    IntelJ idea下lombok 不生效的问题(@Builder等注解不生效的问题)解决,lombok Plugin插件安装
    Lombok使用
    Windows系统配置.bat启动spring boot项目jar
    SpringBoot2.X + SpringCache + redis解决乱码问题
    mac安装Redis可视化工具-Redis Desktop Manager
    带你轻松了解C# Lock 关键字
    Nginx + Docker 多阶段构建的部署学习
    WPF在Gmap.net中将Marker动起来
    WPF使用 Gmap.NET 绘制极坐标运动轨迹
    使用MySql对IdentityServer4进行持久化
  • 原文地址:https://www.cnblogs.com/tengsc/p/5699473.html
Copyright © 2011-2022 走看看