rm -rf file //强制删除所有文件
rm -r file //对于大文件夹会出现?的提问
set wrap //换行
.xz 文件解压xz -d +文件
查找文件
find / -name +文件名
linux下include包含绝对路径,并且包含库文件很严格,例如在windows下包含<iostream>即可使用printf,但是linux下必须包含<stdio.h>
拷贝:
cp: omitting directory 说明文件里有许多文件,
采用:cp -r //命令来进行递归拷贝
动态连接库
生成:g++ -shared -fPIC -o lib[文件名].so [源代码].cpp ++
连接:g++ main.cpp -L. -l[库文件名不含lib和.so] -o main
-L.--表示在当前文件查找
或者将:-o main.cpp放在最后
g++ -o main -L/liu/project/lib/ -ltiger main.cpp
说明:g++编译器,-o:表示输出可执行文件,-L:表示去哪个目录下寻找,-l:表示要寻找的库文件名称
使用库函数
将.so 文件cp到/usr/lib下(不建议使用),或者建立一个自己lib
使用全局变量export LD_LIBRARY_PATH=[lib的绝对目录]
export LD_LIBRARY_PATH=./ 或 export LD_LIBRARY_PATH=/绝对路径/
//好像过一段时间就要执行一次
./main就可执行。
三个文件: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 #endif
4.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 }
生成共享库文件的命令
g++ -shared -fPIC -o libtiger.so add.cpp sub.c
在文件中出现libtiger.so
使用共享文件库
g++ -o main -L. -ltiger main.cpp
出现main文件,
执行./main会出现错误,是因为执行文件时候搜索的路径并没有搜索当前路径,最常用的做法就是把当前的路径加入,
入前文所述export LD_LIBRARY_PATH=./,在执行即可
Makefile文件
编写方式:
objects=main.o *.o ...
tags:$(objects)
comand
clean:
rm tags $(objects)
objects:目标文件
tags:需要依靠objects生成
conmand:生成tags需要执行的命令
clean:清除命令
例子1
object= main.o add.o sub.o
edit:$(object)
g++ -o edit $(object)
main.o: tiger.h
g++ -c main.cpp
add.o: tiger.h
g++ -c add.cpp
sub.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直接生成目标文件,不需要中间文件,前边的空格是TAB。
makefile文件示例
PROGRAM_NAME=tagmat
PROGRAM_HOME=..
LPATH=${PROGRAM_HOME}/${PROGRAM_HOME}/local/lib
LOCALPATH=${FDK}
INCLUDE_TAG=-I${PROGRAM_HOME}/src -I$(LPATH)/../include
CXX=g++
CFLAGS=-O3
SRC=$(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}
错误
1.makefile:2: *** unterminated variable reference. Stop.
make文件的语法错误,缺少(,
2.make: *** No rule to make target `libtiger.so', needed by `main.o'. Stop.
语法错误
//ubuntu 编译时候,出现/tmp/..main.o错误,重新编译gcc_5.2.0后问题竟然消失了,奇怪
//写好makefile文件编译时候,出现不兼容,查看.so 文件是64位,ubuntu是32位,换centos6.5环境
抓包命令:
tcpdump -i -n 网卡 host ip and \(ip or ip ...\)
表示抓从本地主机到服务器端口的包。
rm -r file //对于大文件夹会出现?的提问
set wrap //换行
.xz 文件解压xz -d +文件
查找文件
find / -name +文件名
linux下include包含绝对路径,并且包含库文件很严格,例如在windows下包含<iostream>即可使用printf,但是linux下必须包含<stdio.h>
拷贝:
cp: omitting directory 说明文件里有许多文件,
采用:cp -r //命令来进行递归拷贝
动态连接库
生成:g++ -shared -fPIC -o lib[文件名].so [源代码].cpp ++
连接:g++ main.cpp -L. -l[库文件名不含lib和.so] -o main
-L.--表示在当前文件查找
或者将:-o main.cpp放在最后
g++ -o main -L/liu/project/lib/ -ltiger main.cpp
说明:g++编译器,-o:表示输出可执行文件,-L:表示去哪个目录下寻找,-l:表示要寻找的库文件名称
使用库函数
将.so 文件cp到/usr/lib下(不建议使用),或者建立一个自己lib
使用全局变量export LD_LIBRARY_PATH=[lib的绝对目录]
export LD_LIBRARY_PATH=./ 或 export LD_LIBRARY_PATH=/绝对路径/
//好像过一段时间就要执行一次
./main就可执行。
三个文件: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 #endif
4.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 }
生成共享库文件的命令
g++ -shared -fPIC -o libtiger.so add.cpp sub.c
在文件中出现libtiger.so
使用共享文件库
g++ -o main -L. -ltiger main.cpp
出现main文件,
执行./main会出现错误,是因为执行文件时候搜索的路径并没有搜索当前路径,最常用的做法就是把当前的路径加入,
入前文所述export LD_LIBRARY_PATH=./,在执行即可
Makefile文件
编写方式:
objects=main.o *.o ...
tags:$(objects)
comand
clean:
rm tags $(objects)
objects:目标文件
tags:需要依靠objects生成
conmand:生成tags需要执行的命令
clean:清除命令
例子1
object= main.o add.o sub.o
edit:$(object)
g++ -o edit $(object)
main.o: tiger.h
g++ -c main.cpp
add.o: tiger.h
g++ -c add.cpp
sub.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直接生成目标文件,不需要中间文件,前边的空格是TAB。
makefile文件示例
PROGRAM_NAME=tagmat
PROGRAM_HOME=..
LPATH=${PROGRAM_HOME}/${PROGRAM_HOME}/local/lib
LOCALPATH=${FDK}
INCLUDE_TAG=-I${PROGRAM_HOME}/src -I$(LPATH)/../include
CXX=g++
CFLAGS=-O3
SRC=$(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}
错误
1.makefile:2: *** unterminated variable reference. Stop.
make文件的语法错误,缺少(,
2.make: *** No rule to make target `libtiger.so', needed by `main.o'. Stop.
语法错误
//ubuntu 编译时候,出现/tmp/..main.o错误,重新编译gcc_5.2.0后问题竟然消失了,奇怪
//写好makefile文件编译时候,出现不兼容,查看.so 文件是64位,ubuntu是32位,换centos6.5环境
抓包命令:
tcpdump -i -n 网卡 host ip and \(ip or ip ...\)
表示抓从本地主机到服务器端口的包。