• Debian 入门安装与配置2


    Debian 入门安装与配置2

    1. C/C++开发必装软件

      atp-get install gcc    这个不用说,用来编译C程序

      apt-get install g++ 用来编译C++程序

      apt-get install make 用来使用makefile文件编译程序

      apt-get install autoconf

      atp-get install automake

      autoconf和automake这两个请参见:Linux下autoconf和automake使用

      (未完待续)

    2. C/C++源代码软件安装

      源代码软件安装肯定是经典的三部曲,进入到源代码文件夹,然后进行以下三步操作:

        ./configure      //参考:linux下configure命令详细介绍

        make

        make install

      但经常会出现一些问题:(未完待续)

    3. 关于C/C++的默认包含路径 

      GCC作为C/C++程序的编译器,其默认搜索目录决定了我们在程序编译时,一些需要包含的头文件(.h)和链接文件 (.a)去哪里寻找。

      (1)查看默认路径

        首先先来看看编译器的默认搜索路径都是那些,使用如下命令可以查询到GCC的默认头文件(#include<...>)搜索目录:

          #对于C:

          echo | gcc -v -x c -E -

          #对于C++:
          echo | g++ -v -x c++ -E -

        注意:不明白这两个命令只有在root权限下才能看到路径相关内容,也许跟我安装时就是在root权限下有关。

        下图所示g++ 4.9的默认包含目录:


        可以看到默认搜索路径没有/usr/local/include/目录,因为我们一般下载源码编译安装后一般都安装在/usr/local/目录中(包括.h、.a、.so文件),所以这就可以解释我们明明编译了所依赖的源代码,但还是找不到所依赖项,因为编译器的默认搜索路径中没有包含我们编译安装后的文件路径。

        相同道理,使用上述命令也可以查看默认链接文件(.a)的搜索目录,如下图所示:

        运行时动态库路径一般与链接文件路径在一起。

      (2)修改默认路径

        如果想要为GCC编译器添加头文件(#include<...>)和链接文件的搜索路径,可以参考:An Introduction to GCC - for the GNU compilers gcc and g++

        上面的链接中明确指出编译器依赖于下面几个宏来定位搜索路径,但是这几个宏在Debian 8中使用env命令查找后,发现没有,但是在使用上述命令查看时,却出现了LIBRARY_PATH宏,这个宏和我们自定义的宏怎么回事?在这一点上还有很多疑问,不太懂??????

        下面就来简单翻译一下如何使用这几个宏,这几个宏都需要定义在文件(/etc/profile)中或者文件(/home/.bash_profile)中,定义在前者文件中,所有用户都能使用这些宏,定义在后者文件中,则只能定义宏的用户使用。    

          增加头文件搜索路径:

            #对于C:
            C_INCLUDE_PATH=/usr/include/freetype2
            export C_INCLUDE_PATH

            #对于 C++
            CPLUS_INCLUDE_PATH=/usr/include/freetype2
            export CPLUS_INCLUDE_PATH

          #增加链接文件(.a)或静态库(.a)搜索路径:
            LIBRARY_PATH=/usr/local/lib
            export LIBRARY_PATH

          #增加动态库(.so)搜索路径:
            LD_LIBRARY_PATH=/usr/local/lib
            export LD_LIBRARY_PATH

        注意:无论我如何尝试,总是导出LD_LIBRARY_PATH失败,不知为什么??????

        配置文件中的宏定义需要重启后才能生效,首先使用命令:

          echo $C_INCLUDE_PATH  

        逐个查询所定义的宏是否生效,如果生效则使用上面的命令:echo | gcc -v -x c -E - 再次查看GCC默认搜索路径是否多出了我们新添加的路径,如下图所示:


        可以看到其中多出了新添加的路径。

        此外还有介绍/etc/ld.so.conf文件的,都与包含目录相关,可以参考:Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量

     

  • 相关阅读:
    express配置流程(windows)
    web性能优化
    解决“向终端显示内容产生时间延迟”
    node.js全局配置
    BootStrap基本模板
    移动Web开发小结
    理解一下vue的mvvm模式
    前端面试题
    使用layui遇到的一些问题及解决方案
    Vue之使用ajax获取json数据,并用v-for循环显示在表格中
  • 原文地址:https://www.cnblogs.com/wanghaiyang1930/p/5144835.html
Copyright © 2020-2023  润新知