从“#”开始,到这一行结束。
2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
TEMPLATE = app
A>app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被宏卜使用。
B>lib - 建立一个库的makefile。
C>vcapp - 建立一个应用程序的VisualStudio项目文件。
D>vclib - 建立一个库的VisualStudio项目文蔽芦穗件。
E>subdirs -这哗基是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。
对的,.a是静态链接库,相当于windows上的lib文件。.so是动态连接库,相当于windows上的dll文件。用法:1. 把libstudent.a拷贝到/usr/lib或者/lib目录下
2. 比如你的项目是test.c,可以这么编译:gcc -o test test.c libstudent.a 或者gcc -o test test.c -lstuent
.so库的用法一样。
补充:
早说你在windows平台嘛闷碰。。是用cygwin吗?把libstudent.a复制到/usr/lib或者/lib目录下,把dll复制到判滑exe所在的目录。
.a文件是编掘罩腊译exe需要的,.dll文件是exe运行时需要的。
第一步,自己找到这个库。
库一般放在系统默认处或者安装到特定地方。
Linux 系统默认库放在:
/lib/usr/lib
/usr/local/lib
...
1
2
3
4
5
安装到特定地方,如我 Mac 的用 Homebrew 安装到:
/usr/local/Cellar/ice/3.7.0/lib
1
2
第二步:添加路径
添加库一般以下三种方法任选其一:
系统环境变量添加
系统级:修改/etc/profile或者/etc/bashrc
用户级:修改~/.bashrc或者~/.bash_profile
#添加库的bin文件夹路径export PATH =$PATH:$HOME/bin#添加到gcc头文件export C_INCLUDE_PATH=$C_INCLUDE_PATH:/MyLib#添加到g++头文件路径export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/MyLib#添加到动态库export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib#添加到静态库export LIBRARY_PATH=$LIBRARY_PATH:/MyLib1234567891011121314
IED 编译环境添加
因 IDE 不同而不同,如 Qt 在项目-构建设置-构建环境处添加
具体请参考:QT 无法链接动态库 dyld library not loaded … libhdf5.100.dylib
代码添加
# 如 Qt pro 文件添加LIBS += -L/usr/local/Cellar/ice/3.7.0/lib -lIceUtil
1
2
3
这样,IDE就能找孙侍到库啦!
方法二:手动编译添加库
若是你的库不存在,也就是说安装的时候没有编译生成这个库文件或者安装后莫名的不见了,这样只能重新安装或者手动编译添加库。以下讲手动编译添加库。
思路是:找库,如果找不到,手动编译生成库文件,拷贝到库文件目录,用上面添加路径的方法添加路径让IDE找到。
第一步:找库
对的,还是要找找的,不然怎么知道没有呢![捂脸]
可以在一些常放库的文件夹下找,尽量靠近根目录,如:
sudo find /usr -name "libIceUtil*"12扩展:
如果找到名为libIceUtil.3.7.0.a的库,但是找不到libIceUtil.a的库,可以试着拷贝libIceUtil.3.7.0.a库成名为libIceUtil.a的库
cp ./libIceUtil.3.7.0.a ./libIceUtil.a12这个方法适用于:
同版本下,缺失没版本号的库文件
不同版本下,库文件没因为版本的改变而发生宏凯空改变
第二步,手动编译
#因为IceUtil是Ice的库,所以克隆下Ice来git clone https://github.com/zeroc-ice/ice.git
#因为我需要的是C++版
cd ice/cpp
#直接编译
make123456789
编译好后就能找到这个库了:cpp/lib/libIceUtil.a
其他库请参考官方的编译安装教程
附:Building Ice for C++ on macOS
第三步,拷贝库到安装后的文件夹
到ice/cpp/lib目录下:
cp ./libIceUtil.a /usr/local/Cellar/ice/3.7.0/lib12第四步:添加路径
上面已经说了三种方法,这里直接代码添加:
# 如 Qt pro 文件添加LIBS += -L/usr/local/Cellar/ice/3.7.0/lib -lIceUtil123
这样就解决了!
唠叨
以上这些蔽瞎方法基本上能完美解决这种库文件无法找到问题,如果有本文没有提及的欢迎留言讨论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)