linux下程序设计- 库与头文件

来源:互联网 发布:图片合成动画软件 编辑:程序博客网 时间:2024/06/06 06:38

      0.预备知识:编译-运行一个c/c++程序时,编译器只默认的去连接c库,而很多的库不是标准库
  
  1.linux下#inlude 命令默认头文件搜索路径为/usr/include,qt编程要用到的库qapplication库在usr/lib/qt-3.1/include下所以必须要用I增加路径。如 g++ -hello hello.cpp –I/usr/lib/qt-3.1/include 。-I表示除了收索标准库,还要收索指定的额外头文件路径。
  
  2.linux下的库,动态库为.so文件静态库为.a文件,编译运行时系统默认搜索的库为/usr/lib和/lib库。
  
  linux下C库在/lib/libc.so.6路径下。
  
  3.编译qt程序时要加上 g++ -lqt …. lib库(相当于函数库集);
  
  -I:表示头文件额外搜索路径
  
  -L:表示要额外lib库搜索路径。
  
  -l:表示表示指定具体的要连接(用到)的库(–lqt表示连接qt库)(qt不在默认lib库路径下,而在/usr/lib/qt-3.1/lib下,所以必须额外指定)
  
  4.为了简化编译时的指定路径和库的麻烦,可以设置环境变量:
  
  CPLUS_INCLUDE_PATH:设置头文件搜索路径。
  
  例如:export CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include //
  
  LD_LIBRARY_PATH:设置动态库搜索路径。
  
  例如:export LD_LIBRARY_PATH =/usr/lib/qt-3.1/lib //注意qt比较特殊直接用LIBRARY_PAHT;
  
  在终端下输入 env 和set命令可以显示环境变量。
  
  5.qt下编译可用简便方法
  
  运行qmake –project 产生一个pro工程文件。
  
  运行 qmake 产生Makefile
  
  运行 make 产生可执行程序
  
  6.查找一个文件用命令:which qmake
  
  7. qwidget.h是可视化窗口类。
  
  8.编译常见错误:undefined reference to….没找到实现函数,相当于有头文件但没有具体实现里面的函数。
  
  9、qt4的安装用configure –no-openssl ……yes
  
  10、当用到槽的时候由于c++中没有槽的概念,就要用moc进行处理生成c++文件
  
  qmake进行编译qt程序时的执行过程(以原程序myslot.cpp为例):
  
  g++ -c –o myslot.o myslot.cpp
  
  moc myslot.h –o moc_myslot.cpp
  
  g++ -c –o moc_myslot.o moc_myslot.cpp
  
  g++ -o 3-2 myslot.o moc_myslot.o –lqt

原创粉丝点击