lib

Centos6.5 qt 安装

Deadly 提交于 2020-03-19 01:16:46
1,centos linux系统必须预先以安装x Server(KDE or GNOME) 2,wget http://download.qt-project.org/official_releases/qt/5.4/5.4.0/qt-opensource-linux-x64-5.4.0.run (软件包下载链接) http://download.qt.io/official_releases/qt/5.4/5.4.0/ (软件介质参考链接) 3,问题解决 Error during installation process (qt.54.gcc_64): Execution failed(Unexpected exit code: 1): "/opt/Qt5.4.0//Tools/QtCreator/bin/sdktool addQt --id qt.54.gcc_64 --name Qt %{Qt:Version} GCC 64bit --type Qt4ProjectManager.QtVersion.Desktop --qmake /opt/Qt5.4.0/5.4/gcc_64/bin/qmake" Error during installation process (qt.54.gcc_64): Execution failed(Unexpected exit code:

linux 缺少动态连接库.so--cannot open shared object file: No such file or directory

大城市里の小女人 提交于 2020-03-18 15:39:02
error while loading shared libraries的解決方法 执行行程式時,如此遇到像下列這種錯誤: ./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory 那就表示系統不知道xxx.so 放在哪個目錄下。 這個時候 就要在/etc/ld.so.conf中加入xxx.so所在的目錄。 一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。 或者加入一行xx.so所在的绝对路径,如/usr/local/log4cxx/lib/ 也行。 將 /etc/ld.so.conf存檔後,還要執行「/sbin/ldconfig –v」來更新一下才會生效。 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库. LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库.

Linux命令-ldd

情到浓时终转凉″ 提交于 2020-03-18 13:30:36
某厂面试归来,发现自己落伍了!>>> 1. 在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行; 在Linux环境下通过ldd命令即可实现,在终端下执行: ldd /bin/ls //ldd命令通常使用"-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息。 即可得到/bin/ls命令的相关共享库文件列表: libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) 注意: 在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下, /etc/ld.so.conf 文件中包含有默认的共享库搜索路径。 2. 龙芯电脑中更新了库文件时,经常会引起某些软件无法使用,可以通过ldd命令来检查软件需要那些 共享库 的支持,如:以前在安装apt-get install devscripts软件时安装更新了很多库,结果导致OpenOffice无法使用,可以使用命令:

ldd命令,查看依赖的动态库信息 nm命令可以列出一个函数库文件中的符号表

萝らか妹 提交于 2020-03-18 13:26:12
某厂面试归来,发现自己落伍了!>>> ldd命令的作用是查看程序依赖的动态链接库信息。使用nm命令也可以获取库函数的信息;nm命令可以列出一个函数库文件中的符号表,它对静态的库函数和共享的库函数都能起作用。 Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。 方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径 。 可以通过编辑配置文件/etc/ld.so.conf来指定动态库的搜索路径,该文件中每行为一个动态库搜索路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效。我们通过例1来说明该方法。 方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径 。 通过设定环境变量LD_LIBRARY_PATH也可以指定动态库搜索路径。当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔。下面通过例2来说明本方法。 方法三:在编译目标代码时指定该程序的动态库搜索路径 。

libc.so.6共享库恢复

霸气de小男生 提交于 2020-03-18 13:19:26
某厂面试归来,发现自己落伍了!>>> 最近遇到机房的一台虚拟机(测试机器)的libc库的软链libc.so.6被删除了,实际文件libc.2.4.so还在。 机器现状: 还有shell远程连入,但是各种命令都不能再使用: /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory 网上搜索了一番,找到 这个 解决方案: # LD_PRELOAD=<real libc> ln ...... 相当于直接调用 ln命令, 所以, 先删除连接 : # cd /lib # LD_PRELOAD=/lib/libc-2.3.6.so.bak rm libc.so.6 再建立新连接 : # LD_PRELOAD=/lib/libc-2.3.6.so.bak ln -s /lib/libc-2.3.6.so.bak libc.so.6 ==》 分析: 由于shell仍然连入,因此此种方案可行。 原理就是: linux调用so的库文件时,搜素路径为当前路径,再是系统lib目录。 但是提供了一个LD_PRELOAD系统变量来改变这个顺序。设置LD_PRELOAD了后,库加载的顺序就改为: 搜素路径为: LD_PRELOAD

什么是LD_PRELOAD技巧?

送分小仙女□ 提交于 2020-03-18 13:09:50
某厂面试归来,发现自己落伍了!>>> 我最近在 proggit 上 看到 了它的引用,并且(截至目前)它没有被解释。 我怀疑 这 可能是它,但我不确定。 #1楼 LD_PRELOAD 列出了包含覆盖标准集的函数的共享库,就像 /etc/ld.so.preload 那样。 这些是由loader /lib/ld-linux.so 实现的。 如果要仅覆盖几个选定的函数,可以通过创建重写对象文件并设置 LD_PRELOAD 来完成此操作; 此对象文件中的函数将仅覆盖那些将其他函数保留原样的函数。 有关共享库的更多信息,请访问 http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html #2楼 将 mylib.so 导出到env很容易: $ export LD_PRELOAD=/path/mylib.so $ ./mybin 禁用: $ export LD_PRELOAD= #3楼 这是一篇关于预加载的详细博客文章: https://blog.cryptomilk.org/2014/07/21/what-is-preloading/ #4楼 使用 LD_PRELOAD 路径,可以强制应用程序加载器加载提供的共享对象,超过默认提供的。 开发人员通过提供不同版本的共享对象来使用它来调试其应用程序。

部署Jenkins+Gitlab实现持续集成

只谈情不闲聊 提交于 2020-03-18 12:45:19
Jenkins介绍 Jenkins 只是一个平台,真正运作的都是插件。这就是 jenkins 流行的原因,因为 jenkins 什么插件都有Hudson 是 Jenkins 的前身,是基于 Java 开发的一种持续集成工具,用于监控程序重复的工作,Hudson 后来被收购,成为商业版。后来创始人又写了一个 jenkins,jenkins 在功能上远远超过hudson。 1、什么是集成? 指的是代码由编译、发布和测试、直到上线的一个过程。 2、什么是持续集成? 高效的、持续性质的不断迭代代码的集成工作。 3、如何高效准确的实现持续集成 必不可少的需要一套能自动化、并且可视化的平台来帮助我们。 根据以上几点来看,Jenkins就是一个可以实现持续集成的平台。 4、为什么是Jenkins来帮助我们实现持续集成? 1)Jenkins是一个开源的、且基于JAVA代码开发的持续集成系统 因为含有非常丰富的插件支持,所以我们可以方便的打通版本库、测试构建环境、线上环境的所有环节。并且丰富友好的通知使用者和开发、管理人员。 2)安装维护简单 安装Jenkins,不太复杂。而且支持通用的平台。 3)Java应用常用 在企业的软件构建过程中,JAVA的应用工程稍显复杂,由于复杂构建和代码上线、并且服务的重启。整个过程下来,消耗的时间较多,Jenkins却能很好的集成maven的编译方式

(二)搭建SSH环境

无人久伴 提交于 2020-03-18 08:25:45
一、struts 1、添加jar 包 : commons-fileupload-1.3.1.jar,【文件上传相关包】 commons-io-2.2.jar, commons-lang-2.4.jar , commons-lang3-3.2.jar, 【struts对java.lang包的扩展】 freemarker-2.3.19.jar, 【struts的标签模板库jar文件】 ognl-3.0.6.jar, struts2-core-2.x.jar, 【struts2核心功能包】 struts2-spring-plugin-2.x.jar, xwork-core-2.x.jar 【Xwork核心包】 到web-inf/lib目录下。 2、添加struts.xml 到src目录下。可在“struts-2.x\apps\struts2-blank\WEB-INF\classes”下复制。 在struts.xml中添加几个常用属性: 1 <!-- 禁用动态方法访问 --> 2 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 3 <!-- 配置成开发模式 --> 4 <constant name="struts.devMode" value="true" /> 5 <!--

dlopen failed: library "/system/lib/libxxx.so" needed or dlopened by "/system/lib/libnativeloader.so

旧时模样 提交于 2020-03-17 11:52:20
Android 加载so库:dlopen failed: library “/system/lib/libSpiDevice.so” needed or dlopened by “/system/lib/libnativeloader.so” is not accessible for the namespace “classloader-namespace” 简易说明我的解决方法,不代表一定可以解决. 1.将需要调用的libSpiDevice.so放到/system/lib下, 2.运行程序发现报错,百度一查说是要把改so库的名字写到/system/etc/public.libraries.txt,这个文件里 3,adb pull出来,修改,adb push进去,重启; 重点来了:将libSpiDevice.so加到public.libraries.txt这个文件时,注意要换行,换行,换行!!!,否则push到系统中是识别不到的,cat public.libraries.txt,会发现根本没有刚添加的字段…这就是没有换行.所以,记得换行,换行,换行. 来源: CSDN 作者: 车水码农 链接: https://blog.csdn.net/qq_35390092/article/details/104859765

ARM 移植 QT 5.9.6

折月煮酒 提交于 2020-03-17 06:33:23
1:配置脚本 因linux和windows格式配置不一样,复制进去会报错,直接在linux vim 手打 #!/bin/sh ./configure -prefix /opt/qt5.9 \ -opensource \ -debug \ -confirm-license \ -xplatform linux-arm-gnueabi-g++ \ -no-opengl \ -no-pch \ -shared \ -no-iconv \ -no-xcb \ 2:qmake.conf # # qmake configuration for building with arm-linux-gnueabi-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = arm-linux-gnueabihf-gcc -lts QMAKE_CXX = arm-linux-gnueabihf-g++ -lts