学校网站建设风险分析,wordpress菜单前面加图标,c .net网站开发视频教程,装修设计公司公司价格表之前在这篇文章里介绍过动态库和静态库的理论部分,这篇文章主要介绍下实际的操作步骤#xff1a;
静态链接库生成
gcc -c main.cpp -o main.o
ar -rc libmain.a main.o
sudo cp libmain.a /usr/local/lib
调用即可解释一下上面的命令#xff1a;前两步生成了libmain.a sudo… 之前在这篇文章里介绍过动态库和静态库的理论部分,这篇文章主要介绍下实际的操作步骤
静态链接库生成
gcc -c main.cpp -o main.o
ar -rc libmain.a main.o
sudo cp libmain.a /usr/local/lib
调用即可解释一下上面的命令前两步生成了libmain.a sudo cp libmain.a /usr/local/lib 这一步是防止出现报错 /usr/bin/ld:cannot find -l或者使用软链接 调用的话我使用cmake形式在CMakelists.txt中写target_link_libraries(${PROJECT_NAME} libmain.a mosquitto) 注意如果静态库调用了其他库(本例是mosquitto)一定要放在左边否则报错undefine可能是从右往左读
动态链接库生成
gcc -c main.cpp -o main.o
gcc -shared main.o -o libmain.so
调用即可解释一下上面的命令前两步生成libmain.sosudo cp libmain.so /usr/local/lib 这一步是防止出现报错 /usr/bin/ld:cannot find -l或者使用软链接 调用的话我使用cmake形式在CMakelists.txt中写target_link_libraries(${PROJECT_NAME} libmain.so mosquitto) 注意如果静态库调用了其他库(本例是mosquitto)一定要放在左边否则报错undefine可能是从右往左读
注明一下过程中可能有的报错
报错1
/usr/bin/ld:cannot find -l解决办法执行上面的cp命令或者使用软链接让/usr/local/lib下能够找到该库
报错2
cp: cannot stat /usr/local/bin/node: Too many levels of symbolic links解决办法这个是因为有了软链接又想cp过去删除软链接后cp即可
报错3
/usr/bin/ld: skipping incompatible解决办法这个是环境不兼容用了x86的结构下生成的包在arm下使用再重新生成一个本地包即可