易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux学习(二).1(转)

1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。
4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。
5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。
几个特殊的环境变量:
LD_LIBRARY_PATH 这个环境变量是大家最为熟悉的,它告诉loader:在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。在linux下,还提供了另外一种方式来完成同样的功能,你可以把这些目录加到/etc/ld.so.conf中,或则在/etc/ld.so.conf.d里创建一个文件,把目录加到这个文件里。当然,这是系统范围内全局有效的,而环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找可执行文件一样。
LD_PRELOAD 这个环境变量对于程序员来说,也是特别有用的。它告诉loader:在解析函数地址时,优先使用LD_PRELOAD里指定的共享库中的函数。这为调试提供了方便,比如,对于C/C++程序来说,内存错误最难解决了。常见的做法就是重载malloc系列函数,但那样做要求重新编译程序,比较麻烦。使用 LD_PRELOAD机制,就不用重新编译了,把包装函数库编译成共享库,并在LD_PRELOAD加入该共享库的名称,这些包装函数就会自动被调用了。在linux下,还提供了另外一种方式来完成同样的功能,你可以把要优先加载的共享库的文件名写在/etc/ld.so.preload里。当然,这是系统范围内全局有效的,而环境变量只对当前shell有效。
LD_ DEBUG 这个环境变量比较好玩,有时


相关文档:

Linux中select函数学习及实例笔记

Unix中的函数select和poll用来,支持Unix中I/O复用的功能,在Unix中I/O模型可以分为以一几种:
(1)阻塞I/O
(2)非阻塞I/O
(3)I/O复用(select和poll)
(4)信号驱动I/O(SIGIO)
(5)异步I/O
   其中,现在比较流行的I/O模型是阻塞I/O模型.阻塞I/O是当应用程序和内核交换数据时,由于内核还没有准备好 ......

如何让进程在Linux后台运行

在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:
[root@localhost /]# ./test.sh &
[1] 17208
然后我们就可以用以下命令进行查看:
[root@localhost /]# jobs -l
[1]  17208 Running ./test.sh &
对于已经在前台执行的命令 ......

Linux/Unix下ODBC的安装、配置与编程

本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装、配置与编程。
ODBC原理
ODBC
是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991
年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱 ......

linux命令


< type="text/javascript"><!--
google_ad_client = "pub-3936520987820628";
//250x250, 创建于 07-12-28
google_ad_slot = "5080959190";
google_ad_width = 250;
google_ad_height = 250;
//-->
< src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javasc ......

Linux学习(二) 共享库的安装

安装程序所需要的共享库时需要注意的问题。
起因:安装libsqlite3.so.0 后,使用ldd test 时,却找不到该库文件。
        在使用cpptest对原程序运行单元测试时,发现错误,即找不到库文件。
安装完libsqlite3.so.0后,其是存储在usr/local/lib的。所以问题在于,linux下的装载程序 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号