zoukankan      html  css  js  c++  java
  • C编译相关

    1,#error在编译期进行警告判断

    eg:
    #if USB_MAXCHILDREN > 31 /* 8*sizeof(unsigned long) - 1  和条件编译宏一起使用,在编译时就可以根据宏的值进行选择性的打印、编译*/
    #error event_bits[] is too short!
    #endif

      #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
      #error LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
      #else
      #error LINUX_VERSION_CODE is ok!!! /*打印了它*/
      #endif

     

    #error message ----注:message不需要用双引号包围,

    #error 编译指示字用于自定义程序特有的编译错误消息类似的,

    #warning用于生成编译警告,但不会停止编译。

    #line的用法:

    #line 用于强制定新的行号和编译文件名,并对源程序的代码重新编号,

    用法:#line number filename   注:filename可省略,

    #line 编译指示字的本质是重定义_line_和_FILE_

    2. pkg-config

    pkg-config可以向configure和make传递include path和library path。

    $ pkg-config --list-all: list all known packages 列出所有的包 $ pkg-config --cflags libdrm: -I/usr/include/libdrm  列出库编译时需要的头文件 $ pkg-config --libs libdrm: -ldrm  链接的动态库

    gcc sample.c -o sample 'pkg-config --cflags --libs libdrm'

    如果libdrm不在标准路径下,那么这样gcc sample.c -o sample `PKG_CONFIG_PATH=path pkg-config --cflags --libs libdrm`

    默认情况下编译器会去/usr/include等特定目录下寻找头文件和库文件,但是有时候这些库可能再各个位置. pkg-config默认会在/usr/lib/pkgconfig/目录下查找所有的.pc文件,当找不到到时候会去到环境变量PKG_CONFIG_PATH查找所有的.pc文件,根据.pc文件返回头文件、库文件位置等各种参数给编译器使用。 库编译完成后,会在{installed_home/lib/}下产生一个名为pkgconfig的目录,内含该链接库的.pc文件,将包含.pc的路径添加到环境变量PKG_CONFIG_PATH中,就可以让pkg-config在这些路径的.pc文件中 查找到你自己编译库的头文件和库文件到位置。

    编译时: export PKG_CONFIG_PATH=/installed_home/lib/pkgconfig:$PKG_CONFIG_PATH

    程序运行时: export LD_LIBRARY_PATH=/path/lib:$LD_LIBRARY_PATH以便应用程序可以查找到库文件的位置。

  • 相关阅读:
    教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)
    ArcGIS API for Silverlight 使用GeometryService进行河流网格划分(三)
    ArcGIS Server 10.1发布要素服务时遇到的数据库注册问题总结 (二)
    使用ArcGIS API for Silverlight + Visifire绘制地图统计图
    使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示
    报个道
    Cgroups
    docker的文件系统
    go实现http服务
    linux调度器原理
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/9343649.html
Copyright © 2011-2022 走看看