麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

linux生成.so,查找編譯問(wèn)題之雜文

2019-11-11 06:45:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
rm -rf file //強(qiáng)制刪除所有文件rm -r file  //對(duì)于大文件夾會(huì)出現(xiàn)?的提問(wèn)set wrap   //換行.xz 文件解壓xz -d +文件查找文件find / -name +文件名linux下include包含絕對(duì)路徑,并且包含庫(kù)文件很?chē)?yán)格,例如在windows下包含<iostream>即可使用PRintf,但是linux下必須包含<stdio.h>拷貝:cp: omitting directory 說(shuō)明文件里有許多文件,采用:cp -r //命令來(lái)進(jìn)行遞歸拷貝動(dòng)態(tài)連接庫(kù)生成:g++ -shared -fPIC -o lib[文件名].so  [源代碼].cpp  ++連接:g++ main.cpp  -L.  -l[庫(kù)文件名不含lib和.so] -o main-L.--表示在當(dāng)前文件查找或者將:-o  main.cpp放在最后g++ -o main -L/liu/project/lib/ -ltiger main.cpp說(shuō)明:g++編譯器,-o:表示輸出可執(zhí)行文件,-L:表示去哪個(gè)目錄下尋找,-l:表示要尋找的庫(kù)文件名稱(chēng)使用庫(kù)函數(shù)將.so 文件cp到/usr/lib下(不建議使用),或者建立一個(gè)自己lib使用全局變量export LD_LIBRARY_PATH=[lib的絕對(duì)目錄](méi)export LD_LIBRARY_PATH=./ 或 export LD_LIBRARY_PATH=/絕對(duì)路徑///好像過(guò)一段時(shí)間就要執(zhí)行一次./main就可執(zhí)行。三個(gè)文件:main.cpp  tiger.h  add.cpp  sub.c 如下1.add.cpp   1 int add(int a,int b)  2 {  3 return a+b;  4 }2.sub.c  1 int sub(int a,int b)  2 {  3 return a-b;  4 }3.tiger.h  1 #ifndef _TIGER_  2 #define _TIGER_  3   4 int add(int a, int b);  5 int sub(int a ,int b);  6   7 #endif4.main.cpp  1 #include <iostream>  2 #include "tiger.h"  3   4 using namespace std;  5 int main()  6 {  7   8 cout<<"program start............."<<endl;  9 cout<<"sub(9,2)==  "<< sub(9,2)<<endl; 10 cout<<"add(9,2)==  "<<add(9,2)<<endl; 11  12 return 0; 13 }生成共享庫(kù)文件的命令g++ -shared -fPIC -o libtiger.so add.cpp sub.c 在文件中出現(xiàn)libtiger.so 使用共享文件庫(kù)g++ -o main -L. -ltiger main.cpp出現(xiàn)main文件,執(zhí)行./main會(huì)出現(xiàn)錯(cuò)誤,是因?yàn)閳?zhí)行文件時(shí)候搜索的路徑并沒(méi)有搜索當(dāng)前路徑,最常用的做法就是把當(dāng)前的路徑加入,入前文所述export LD_LIBRARY_PATH=./,在執(zhí)行即可Makefile文件編寫(xiě)方式: objects=main.o  *.o ...tags:$(objects)comandclean:rm tags $(objects)objects:目標(biāo)文件tags:需要依靠objects生成conmand:生成tags需要執(zhí)行的命令clean:清除命令例子1object= main.o add.o sub.o edit:$(object)         g++ -o edit  $(object)   main.o: tiger.h       g++ -c main.cppadd.o: tiger.h       g++ -c add.cppsub.o: tiger.h       g++ -c sub.c clean:          rm edit $(object)例子2:加載.so文件的情況object= main.cpp    2 edit:$(object)  3         g++ -o edit -L/liu/project/lib/ -ltiger $(object)  4  clean:          rm edit $(object)例子2直接生成目標(biāo)文件,不需要中間文件,前邊的空格是TAB。makefile文件示例PROGRAM_NAME=tagmatPROGRAM_HOME=..LPATH=${PROGRAM_HOME}/${PROGRAM_HOME}/local/libLOCALPATH=${FDK}INCLUDE_TAG=-I${PROGRAM_HOME}/src -I$(LPATH)/../includeCXX=g++CFLAGS=-O3SRC=$(wildcard *.cpp)OBJ=$(patsubst %.cpp,%.o,$(SRC))## Make rules starts here, you should need to edit anything below this line#all : ${PROGRAM_NAME}@(if [ ! -d ${LPATH} ]; then mkdir ${LPATH}; fi)@(mv ${PROGRAM_NAME} ${LPATH}/${PROGRAM_NAME})${OBJ} : ${SRC} ${HEADER}$(CXX) $(CFLAGS) -c ${SRC} ${INCLUDE_TAG}${PROGRAM_NAME} : ${OBJ}$(CXX)  $(CFLAGS) -o ${PROGRAM_NAME} ${OBJ} -L${LPATH}/ -lmatio  -lz  clean:rm -rf *.o ${LPATH}/${PROGRAM_NAME}錯(cuò)誤1.makefile:2: *** unterminated variable reference.  Stop.make文件的語(yǔ)法錯(cuò)誤,缺少(,2.make: *** No rule to make target `libtiger.so', needed by `main.o'.  Stop.語(yǔ)法錯(cuò)誤//Ubuntu 編譯時(shí)候,出現(xiàn)/tmp/..main.o錯(cuò)誤,重新編譯gcc_5.2.0后問(wèn)題竟然消失了,奇怪//寫(xiě)好makefile文件編譯時(shí)候,出現(xiàn)不兼容,查看.so 文件是64位,ubuntu是32位,換centos6.5環(huán)境抓包命令:tcpdump -i -n 網(wǎng)卡 host ip  and /(ip or ip .../)表示抓從本地主機(jī)到服務(wù)器端口的包。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩精品久久久久久 | 法国极品成人h版 | av国语 | 国产高清成人久久 | av电影免费在线 | 中文字幕在线视频网站 | 视频一区二区视频 | xnxx 日本19 | 久久久精品综合 | 日韩视频一区二区三区在线观看 | 久久福利精品 | 国产1区2区在线 | 双性帝王调教跪撅打屁股 | 18欧美性xxxx极品hd | 久久第四色 | 日本网站在线播放 | 一级免费在线视频 | 91伊人久久| 国产精品伦视频看免费三 | 免费永久看羞羞片网站入口 | 激情综合在线观看 | 亚洲人成在线播放 | 久久综合久久精品 | 经典三级在线视频 | 久久男人天堂 | wwwxxx视频| 日本黄色大片免费 | 国产在线导航 | 免费在线观看国产 | 久久99精品久久久久久236 | 中文字幕在线视频网站 | 毛片118极品美女写真 | 久久国产不卡 | 久久久久久三区 | h色视频网站 | 日本欧美中文字幕 | 日韩黄色片免费看 | 国产91在线播放九色 | 成人在线观看小视频 | 看免费毛片 | 日本不卡一区二区在线观看 |