linux g++ 环境编译配置笔记
ubuntu 快捷键:
Alt + Tab 切换不同应用, Alt + ` 切换相同应用
ubuntu 安装软件 sudo apt install libjpeg 按Tab显示匹配
apt search libjpeg 查找匹配
apt-file 查找头文件所在库
libtool | automake | autoconf | net-tools
sudo apt-cache search x11-dev
make -n
先把apt-file装上并更新一下数据
apt-file search 'xcb/xcb_image.h'
在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r
sed -i 's/\r$//' configure
查看某个库是否安装命令:
ldconfig -p | grep pcap
cario 入门
https://www.cairographics.org/FAQ/#compilation_flags
cc -o hello $(pkg-config --cflags --libs cairo) hello.c
pkg-config --cflags --libs cairo
1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print
命令行\桌面模式切换
Alt+Ctrl+F3 打开命令行
Alt+Ctrl+F1 打开图形桌面模式
sftp 配置 https://blog.csdn.net/yanzhenjie1003/article/details/70184221/
zip -r xxx.zip ./*
命令行启动桌面
startx或者init 5
一般这两个命令是进入图片界面的
To reconfigure, run 'make confclean' and 'configure'.
清除配置
make distclean
配置储存文件
Info: creating stash file .stash
config.cache
多线程: make -j4
$ echo "libc_cv_forced_unwind=yes" > config.cache
$
${GLIBC_DIR}/configure [options] --cache-file=config.cache
uname -a 查看系统版本
sudo apt-get install libegl1-mesa libgles2-mesa
//重新安装桌面
sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop
sudo apt-get install unity
sudo shutdown -r now
g++ 链接顺序有关系,有向后查找依赖的特点
查看导出函数
nm -D /lib64/libharfbuzz.so.0 | grep FT_Get
U FT_Get_Advance
T FT_Get_Char_Index
U表示外部符号,T表示内部符号
readelf -d xxx(目标文件/命令) 查看xxx使用的动态库
依赖关系:
将依赖的包及相应的软连接拷贝到部署机的任意目录下,并设定环境变量LD_LIBRARY_PATH,这些依赖包列表可以通过ldd命令查询
解决qt5无法输入中文 fcitx :
下载 https://github.com/fcitx/fcitx-qt5
CMake配置,依赖:
cmake fcitx-qt5时报错
"ECM": 解决: sudo apt install extra-cmake-modules
Qt5Config.cmake 解决: Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
复制自动确认不替换
shell>awk 'BEGIN { cmd="cp -ri a1/* a2/"; print "n" |cmd; }'
查看进程加载模块
# cat /proc/12345/maps | awk '{print $6}' | grep '\.so' | sort | uniq
编译工具
sudo apt-get install build-essential
gtk-2.0
sudo apt-get install libgtk2.0-dev
cairo2
sudo apt-get install libcairo2-dev
安装SDL2_image使用的图像开发库
sudo apt install libjpeg-dev
sudo apt install libwebp-dev
sudo apt install libtiff-dev
SDL2,SDL2_Image 自己编译
在SDL2解压目录使用如下命令安装:
mkdir build && cd build && ../configure CFLAGS='-fPIC' && make && sudo make install
SDL2_Image编译安装
mkdir build && cd build && \
../../SDL2_image-2.0.4/configure CFLAGS='-fPIC' LDFLAGS="-Wl,-rpath=\'\$\$\ORIGIN\'" \
&& make && sudo make install
Qt
sudo apt-get install io.qt.qtcreator 或 qtcreator
sudo apt-get install qt4-default
sudo apt-get install qt5-default
CMAKE工具
sudo apt-get install cmake
cmake使用方法:
mkdir build && cd build && mkdir OfdParser && cd OfdParser && cmake ../../OfdParser && make && sudo make install
编译输出时指定rpath = $ORIGIN(应用程序、库 可在同文件夹查找依赖库文件)
../configure CFLAGS='-fPIC' LDFLAGS=-Wl,-rpath=\'\$\$\ORIGIN\'
QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\'
Qt设置插件所在文件夹\目录
QApplication aApp(argc,argv);
QApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath()+"/plugins/"));
在调用 QCoreApplication::applicationDirPath() 前,必须先创建一个 QApplication的对象
UOS下遇到的libcurl库运行时报错问题目前的解决方法:
可能原因:suwell数科阅读器运行时会自动加载阅读器目录的 libcurl.so.4
此库与libAztNet使用的libcurl.so.4、libssl.so.1.1、 libcrypto.so.1.1可能冲突
解决方法:
1、复制系统的libcurl.so.4等三个库出来到一个单独的文件夹,并修改名字为 libM*.so(添加一个M代表自己用的库)。
2、利用patchelf工具(可由命令行安装)修改此三个库的 SONAME、依赖库名称、rpath 如下方法:
patchelf --set-soname libMcurl.so.4 libcurl.so.4
patchelf --set-rpath /opt/DZQZ/lib libcurl.so.4
patchelf --replace-needed libcurl.so.1.1 libMcurl.so.1.1 libMcurl.so.4
查看SONAME、依赖关系的方法: readelf -d 库文件名
查看库中符号 nm -D 库文件名
3、编译的时候 makefile 链接库的选项使用: -lMcurl
GCC添加ORIGIN路径:
g++ LDFLAGS="-Wl,-rpath=\'\$\$\ORIGIN\'" \
linux g++ 环境编译配置笔记相关推荐
- 云端搭建Linux学习环境 【课堂笔记】
云端搭建Linux学习环境 [课堂笔记]: 教学文档地址:https://edu.aliyun.com/course/149?spm=a2c6h.14089369.J_2497364210.5.4cd ...
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556 文章- 38 评论- 77 ...
- 打造前端 Deepin Linux 工作环境——安装配置 atom 编辑器
打造前端 Deepin Linux 工作环境--安装配置 atom 编辑器 好,我个人推荐大家使用 atom 编辑器,第一是免费,第二是好看,第三是好用. 安装 atom 编辑器 我们输入 apt-c ...
- linux桌面环境日志,小白的Linux桌面环境的配置手记
Linux桌面环境的配置 Linux不同于Windows和macOS,是一种开源的操作系统.在网上你可以找到很多以Linux为核心的操作系统,它们统称为Linux distributions,包括Ub ...
- linux tomcat环境变量配置_Tomcat
Tomcat介绍 1.Web服务器介绍Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源.进行页面跳转等Web服务器响应可委托给CGI脚本.JSP脚本.ASP脚本.服务器端JS ...
- linux tomcat集群配置笔记
趁最后一天假期,配置linux环境下的apache集群,巩固下,免的以后用到又忘记,网上东拼息凑,环境弄好后,整到blog,以便以后用到. 参考来源:http://www.linuxidc.com/L ...
- Linux kernel内核编译配置选项详解
转载于:http://lamp.linux.gov.cn/Linux/kernel_options.html 作者:金步国 Code maturity level options 代码成熟度选项 Pr ...
- Linux 权限、磁盘操作命令-Linux基础环境命令学习笔记
1.创建用户和用户组 1)用户和用户组 /etc/passwd 保存系统用户的基本信息 /etc/group 保存用户组信息 用户名:x:UID:GID 2)基本命令 useradd 增加用户 gro ...
- SNMP在windows linux router上的配置笔记
一.windows ip 地址:192.168.6.243 添加删除组件--管理监视工具-snmp-下一步-安装. 我的电脑-管理-服务-主要是 代理,陷阱,安全 1.代理:联系人: ...
最新文章
- 第十七届智能车竞赛英飞凌专题培训 ——四轮摄像头组入门讲解
- 求数组当中子数组最大和
- Nginx模块开发入门
- Jedis Cluster源码分析
- os引导程序boot从扇区拷贝os加载程序loader文件到内存(boot copy kernel to mem in the same method)
- 深度学习之PyTorch物体检测实战——新书赠送活动
- 正在导出系统过程对象和操作 卡住_开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程
- VScode环境配置C/C++
- SQL Server 填充因子
- IT基础架构规划方案一(网络系统规划)
- jflash添加芯片_工欲善其事,必先利其器:动手给JLink添加官方不支持的芯片
- Code Craft(编程匠艺)之代码的生命(一)
- 中国AI觉醒 阿里王坚:云智能将成为大趋势
- 订单BOM、销售BOM、标准BOM
- 计算机组成原理基础知识试题及答案,[电脑基础知识]计算机组成原理试题库.doc...
- carplay_如何更改您的CarPlay壁纸
- cross_val_score中scoring参数
- 软件的第三方CNAS测试的目的和意义以及测试内容和流程
- 《Photoshop修色圣典——PPW专业照片修正流程与技巧》—第1章PPW流程
- PATA 1093 有几个PAT