查看完整版本: [-- 请教:pro 文件内指定INCLUDEPATH 和 LIBS 的问题 --]

QTCN开发网 -> Qt基础编程 -> 请教:pro 文件内指定INCLUDEPATH 和 LIBS 的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

gamedot 2010-07-25 05:30

请教:pro 文件内指定INCLUDEPATH 和 LIBS 的问题

本人想把win mobile sdk里的头文件加到QtCreator的工程里去,于是在.pro文件上加了如下这句话。

INCLUDEPATH += D:\Program Files\Windows Mobile 6 SDK\PocketPC\Include\Armv4i\

不过没啥用,照样提示找不到文件。本人是用QtCreator 2.0.0做开发,请问这是为什么呢?谢谢回答。

XChinux 2010-07-25 08:46
路径用引号扣起来。

dbzhang800 2010-07-25 08:56
恩,遇到这种问题,简单查看一下其生成的 makefile 文件,一般就能发现并解决问题了

ccnuliughai 2010-08-26 17:04
版主,请教请教阿,我遇到了一个问题。
按照网上的LIBS 方法去声明动态库,路径和后面的名称都是对的,试过很多次,也试过很多个目录,除了把动态库放在程序当前目录下不提示找不到之外,编译过程中,其他一律提示说找不到这个动态库。
只有当动态库放在目录下的时候,它才能够编译成功。压根不能把动态库文件放到其他文件夹下面,不方便管理阿,这个很郁闷。

另外,还发现一个问题,在把动态库放在程序当前目录下,顺利编译后,如果我使用IDE(我用的是Qt creator)中进行run,程序可以正常运行;但如果我是直接点击目录下面的可执行程序时,则一点反应都没有。我想,这个应该也是由于加载动态库不成功所造成的。于是,我把动态库复制到了lib目录下面,再点击可执行程序,发现可以运行了。真是纠结!不可能我每次都得把动态库文件拷贝一份到lib目录下吧?!!!

求原因,求正解。要哭死了。。

XChinux 2010-08-26 17:26
编译时,关键是要能找到.lib或.a文件,所以要将存放.lib或.a文件的路径加入到.pro文件中,比如 LIBS += -L"C:\path1\for\lib",同时将库名(也可全称)加到LIBS中,比如LIBS += -llibname.lib
运行时,关键是能找到对应的.dll或.so文件,在windows下,此时要么将.dll文件放到可执行文件目录下,要么在环境变量PATH中将.dll文件所在路径加进去。在linux下,则要将.so文件所在的目录加入到环境变量LD_LIBRARY_PATH路径中去(或放到那些公用库目录下,比如/usr/lib/

ccnuliughai 2010-08-26 20:35
引用第4楼XChinux于2010-08-26 17:26发表的  :
编译时,关键是要能找到.lib或.a文件,所以要将存放.lib或.a文件的路径加入到.pro文件中,比如 LIBS += -L"C:\path1\for\lib",同时将库名(也可全称)加到LIBS中,比如LIBS += -llibname.lib
运行时,关键是能找到对应的.dll或.so文件,在windows下,此时要么将.dll文件放到可执行文件目录下,要么在环境变量PATH中将.dll文件所在路径加进去。在linux下,则要将.so文件所在的目录加入到环境变量LD_LIBRARY_PATH路径中去(或放到那些公用库目录下,比如/usr/lib/



莫非我之前理解错了?LIBS 后面接的不是动态库文件的路径和库名吗?编译的时候,需要将.a文件类似于windows下添加到工程中进行引导吗?貌似在生成共享库文件的时候,并不会生成一个“引导库文件”.a文件。
另外,版主所说的LIBS 用法,能说的更具体一定吗?我所用的是Linux  Ubuntu 系统。之前认为是在后面添加动态库的路径和库名,一直不能成功。

谢谢啦!

XChinux 2010-08-31 16:25
Linux更简单了。直接LIBS += -L/lib/path  -l/libname

比如一个静态库名是/usr/local/lib/libaaaa.a
则写成 LIBS += -L/usr/local/lib -laaaa


查看完整版本: [-- 请教:pro 文件内指定INCLUDEPATH 和 LIBS 的问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled