linux c编程小结

gcc的用法小结:

    gcc test.c -o test     一步到位编译直接生产可执行文件,有多个源文件的话,直接列出来即可。

    gcc test.o -o test     链接目标文件生成可执行文件,可列多个目标文件

    gcc -c text.c  编译生成目标文件

        gcc   -g   text.c    生成带调试信息的可执行文件,用于gdb调试

 

 

编译的时候指定到哪里去找头文件和链接库文件,和连接某个库:

         gcc main.c  -I/mnt/include  -L/mnt/lib -lstack   -o  main

        -L 代表要到哪里去寻找库文件

        -I 代表要到哪里去寻找头文件

        -l 代表连接那个库文件

        

        

 

生成静态库文件:

 

    ar rs libstack.a   a.o   b.o   c.o     //这其实是将多个.o文件打包

生成动态库文件:

       先编译: gcc -c -fPIC       test.c      h.c     d.c

       再连接:gcc   -shared   -o  libstack.so   test.o    h.o   d.o

gdb调试命令:

      gdb    main      启动调试之后进入gdb命令模式,此时程序还没有运行

      gdb各种命令:

             set args ....     设置程序的命令行参数

             list       列出源代码

             b  10    在第10行下个断点

             r          让程序开始运行

             n            单步执行

             回车键          重复上一个命令

            s      进入函数中执行

            p </d /x> 变量名    显示变量名

            finish 一直运行直到退出本函数

            quit   退出调试

            例子:如何显示std::string tempStr,

                        p (char*)tempStr

 

linux环境变量的设置:

    1 直接在命令行输入:export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:$PKG_CONFIG_PATH,只是单次有效,退出系统失效。

    2 当前用户一直有效:

        $ sudo vim ~/.profile(or .bashrc)    然后在文件末尾添加export PATH=”$PATH:your path1:your path2 ...”

    3 在系统范围内有效:

        ¥ sudo vim /etc/profile  然后在文件末尾添加export PATH=”$PATH:your path1:your path2 ...”

 

pkg-config的使用:

    首先设置环境变量,将.pc文件的路径添加到PKG_CONFIG_PATH环境变量里面,然后

        1 在gcc命令中直接使用

           gcc -o hello hello.c `pkg-config --cflags --libs libavformat libavcodec`(注意:此处不是单引号,而是键盘左边数字键'1'左侧、

            Tab键上侧的[`]),千万别弄错哦!)

        2 在makefile中使用:

           CFLAGS += `pkg-config --cflags libavformat libavcodec libavdevice libswscale x264`

            LIBS += `pkg-config --libs libavformat libavcodec libavdevice libswscale x264`

    检查某个库文件的include路径和lib路径,看看是否正确的命令:

        pkg-config.exe --cflags zlib //前提是zlib.pc文件的路径已经在PKG_CONFIG_PATH环境变量里面才能查到

     pkg-config.exe --libs zlib

     上面这两个命令会分别列出zlib库的头文件,和lib文件所在的路径。

 

linux注销用户的命令:

        logout

linux关机:

    sudo shutdown -h now

linux上查看某个动态连接库的依赖关系的命令:

 

    x86:     ldd *.so

    arm:    arm-linux-readelf -d *.so

 

 

 

 

 

 

 

         

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值