1、cmake ./ :Configuring done Generating done Build files have been written to
2、make :生成 linux下可执行文件 、 .a(静态库) .so(动态库)
3、./xxx 2 ./inpath ./outpath :通过命令运行可执行文件, 后面参数( 2 ./inpath ./outpath ) 表示输入到可执行文件的命令参数值
4、g++ -o test main.cpp libCal_Algorithm.so :测试编译可执行程序调用动态库(so)
5、ldd -r xxx.so 命令查看so库链接状态和错误信息
6、nm -g xxx.so 查看动态库下所有导出的接口符号
7、find / -name "xxx.so" 查询磁盘上的 xxx.so动态库文件
8、export LD_LIBRARY_PATH = /home/test/:$LD_LIBRARY_PATH 设置加载的库文件目录
9、gdb ./xxx //启动gdb调试 gdb --args ./A V1 V2 V3 //gdb调试带参数的的可执行程序
10、b bin/home/test.cpp:100 代码中某一行打断点
11、r 运行
continue(简写c):继续执行程序,直到下一个断点或者结束;
next(简写n ):单步执行程序,但是遇到函数时会直接跳过函数.不进入函数;
step(简写s)∶单步执行程序,但是遇到函数会进入函数;
until:当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体;
until+行号:运行至某行,不仅仅用来跳出循环;
finish:运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息;
12、pwd 显示当前终端所处目录
13、编写CMakeLists.txt{
cmake_minimum_required(VERSION 2.6)
#包含依赖的头文件目录
include_directories(/home/yzn/桌面/shaoxing/kennal/algtithm_interface)
include_directories(/home/yzn/桌面/shaoxing/sourcecode/CustomAlgrithm)
#${CMAKE_CXX_FLAGS }
set(CMAKE_CXX_FLAGS "-std=c++11 -lpthread -g")
#project (CIMSVG_IMPORT)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS_TEMPLATE,DIR_SRCS_PLATFORM 变量
aux_source_directory(../../sourcecode/CustomAlgrithm/template_Custom/ DIR_SRCS_TEMPLATE)
aux_source_directory(../../sourcecode/CustomAlgrithm/PlatForm_Interface/ DIR_SRCS_PLATFORM)
add_compile_options(-shared -fPIC -L. -lstatic_shared)
#编译so文件
add_library (Cal_Algorithm SHARED ${DIR_SRCS_TEMPLATE} ${DIR_SRCS_PLATFORM} )
}
14、gcc --version 查看gcc编译器版本
15、rm -rf 递归强制删除目录及其内容
16、tar -zcvf xxx.tar.gz xxx //把 xxx文件夹打包后生成一个 xxx.tar.gz的文件。
17、tar -xvf xxx.tar.gz //把xxx.tar.gz压缩文件解压到当前文件夹下。
18、查看lib库.a .so的支持cpu架构 arm64 armeabi
类Unix操作系统(Linux or Minix or mac os):
使用file或者objdump命令,推荐使用objdump,给出的信息更多,例如
file /lib/libc.so
objdump /lib/libc.so
如果是.a文件,需要先使用ar命令将文件转成.o文件,然后使用上面的命令file(or objdump),例如:
ar -x libchipmunk.a(ar命令会生成新文件,所以建议将目标文件copy到其他地方再使用ar -x命令)
mac 下面还可以使用lipo,例如 查看支持构架的命令是lipo -info xxxxx.a,合并真机和模拟器的库的命令是 lipo -create xxxx_iphoneos.a xxxx_simulator.a -output xxxx.a等
windows下面需要其他工具,可以在这个网站找找:
http://gnuwin32.sourceforge.net/packages.html
19、
Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。
但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?
目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。
传统上,Linux 的先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准路经的共享库。ld.so 加载共享库的时候,也会查找这个变量所设置的路经。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
export LD_LIBRARY_PATH