远程控制摄像头软件-msvcr100 dll丢失

libs
2023年4月6日发(作者:释放20 网速)

Qt中Makefile⽂件⾥INCPATH和LIBS参数详解

1LIBS中的-l和-L参数

-l参数是⽤来指定程序要连接的库,-l参数紧接着就是库名,库名和真正的库⽂件名的差别,以数学库为例,

其库名为m,其库⽂件名为,也就是把库名头⽂件的lib和.so去掉就是库名。

放在/lib,/usr/lib和/usr/local/lib中的库直接使⽤参数-l链接就可以了,如果没有放在这三个⽂件中,那么

我们就要使⽤-L加上库⽂件所在的⽂件夹,然后再使⽤-l加上库名就好了。

另外,⼤部分只是⼀个链接,以RH9为例,⽐如它链接到/lib/.x,/lib/.6⼜链接到/lib/libm-

,如果没有这样的链接,还是会出错,因为ld只会找,所以如果你要⽤到xxxx库,⽽只有.x或者

,做⼀个链接就可以了

⼿⼯来写链接参数总是很⿇烦的,还好很多库开发包提供了⽣成链接参数的程序,名字⼀般叫xxxx-config,⼀般放在/usr/bin

⽬录下,⽐如gtk1.2的链接参数⽣成程序是gtk-config,执⾏

gtk-config--libs

就能得到以下输出

"-L/usr/lib-L/usr/X11R6/lib-lgtk-lgdk-rdynamic-lgmodule-lglib-ldl-lXi-lXext-lX11-lm"

这就是编译⼀个gtk1.2程序所需的gtk链接参数,xxx-config除了--libs参数外还有⼀个参数是--cflags⽤来⽣成头⽂件包含⽬录

的,也就是-I参数,在下⾯我们将会讲到。你可以试试执⾏gtk-config--libs--cflags,看看输出结果。现在的问题就是怎样⽤

这些输出结果了,最笨的⽅法就是复制粘贴或者照抄,聪明的办法是在编译命令⾏⾥加⼊这个`xxxx-config--libs--cflags`,

⽐如编译⼀个gtk程序:gccgtktest.c`gtk-config--libs--cflags`这样就差不多了。注意`不是单引号,⽽是1键左边那个键。

除了xxx-config以外,现在新的开发包⼀般都⽤pkg-config来⽣成链接参数,使⽤⽅法跟xxx-config类似,但xxx-config是针对

特定的开发包,但pkg-config包含很多开发包的链接参数的⽣成,⽤pkg-config--list-all命令可以列出所⽀持的所有开发

包,pkg-config的⽤法就是pkg-configpagName--libs--cflags,其中pagName是包名,是pkg-config--list-all⾥列出名单中的

⼀个,⽐如gtk1.2的名字就是gtk+,pkg-configgtk+--libs--cflags的作⽤跟gtk-config--libs--cflags是⼀样的。⽐如:gcc

gtktest.c`pkg-configgtk+--libs--cflags`。

这段是抄的别⼈的,先写在这⾥吧。

2INCPATH中的-I参数

-I参数是⽤来指定头⽂件⽬录,/usr/include⽬录⼀般是不⽤指定的,gcc知道去那⾥找,但是如果头⽂件不在/usr/include⾥

我们就要⽤-I参数指定了,⽐如头⽂件放在/myinclude⽬录⾥,那编译命令⾏就要加上-I/myinclude参数了,如果不加你会得

到⼀个"xxxx.h:Nosuchfileordirectory"的错误。-I参数可以⽤相对路径,⽐如头⽂件在当前⽬录,可以⽤-I.来指定。上⾯我

们提到的--cflags参数就是⽤来⽣成-I参数的。

更多推荐

libs