64 linux看32
2017-07-07 10:15:35 linuxheik 阅读数 145
#include <stdio.h>
int main(int argc  ,char* argv)
{
   #ifdef __x86_64__
         printf("__x86_64__");
   #elif __i386__
         printf("__i386__");
   #endif
   return 0;
}
2013-09-26 20:54:28 lvzhuyiyi4 阅读数 640

I know at least 2 ways. Open a terminal and type:

  1. uname -a

    Result for 32-bit Ubuntu:

    Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686i386 GNU/Linux

    whereas the 64-bit Ubuntu will show:

    Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 x86_64 x86_64x86_64 GNU/Linux

    or

  2. file /sbin/init

    Result for 32-bit Ubuntu:

    /sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

    whereas for the 64-bit version it would look like:

    /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

2  
Method 2, which consists of "sniffing" the (binary) content of a widely available executable, is quite indirect and awkward. While it works for most setups, the merepresence of a 64bit executable should not be a reliable way of detecting therunning OS architecture. Specially when you consider multiarch,ia32_libs and, specially in your init example, upstart – MestreLionMar 25 at 11:20
2014-11-09 11:45:18 saharis 阅读数 526
说明:以下这些内容,一年前,部分整理自网上的信息,部分是我自己的实践经验。
当时没有保存参考的信息来源,所以这里就不注明了。

希望可以帮助到有需要的同学。
1.指定安装目录
我们把JDK安装到这个路径:/usr/lib/jvm
如果没有这个目录(第一次当然没有),我们就新建一个目录

cd /usr/lib
sudo mkdir jvm

2.解压JDK到指定目录
建立好了以后,我们来到刚才下载好的压缩包的目录,解压到我们刚才新建的文件夹里面去,并且修改好名字方便我们管理

sudo tar zxvf ./jdk-7-linux-i586.tar.gz  -C /usr/lib/jvm
cd /usr/lib/jvm
sudo mv jdk1.7.0_05/ jdk7

 3.配置环境变量

gedit /etc/profile

在打开的文件的末尾添加

export JAVA_HOME=/usr/lib/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存退出,然后输入下面的命令来使之生效

source /etc/profile

 4.配置默认JDK

由于一些Linux的发行版中已经存在默认的JDK,如OpenJDK等。所以为了使得我们刚才安装好的JDK版本能成为默认的JDK版本,我们还要进行下面的配置。
执行下面的命令:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk7/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk7/bin/javac 300

 注意:如果以上两个命令出现找不到路径问题,只要重启一下计算机在重复上面两行代码就OK了。

执行下面的代码可以看到当前各种JDK版本和配置:

sudo update-alternatives --config java

PS:如果环境变量配置在bashrc里的话,这里就不再需要配置为默认的。
如果是配置在/etc/profile,这里就需要配置默认

 5.测试

打开一个终端,输入下面命令:

java -version

显示结果:

java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Server VM (build 23.1-b03, mixed mode)



某些情况, 即使在配置成功的情况下,启动Eclipse依然可能会提示找不到java环境,这时候就有个简单粗暴的方法了,
在Eclipse根目录建立名称为jre的文件夹,然后强行将jdk的bin指进来就好了,命令如下:
mkdir jre
cd jre
ln -s 你的JDK目录/bin bin

2018-03-30 11:07:59 lwbeyond 阅读数 192

一. 查看系统的版本

查看系统(内核)

uname -a

二. 查看文件的版本

文件可以是可执行文件、.o、so文件

file stunserver

2017-01-09 14:07:38 chenchaunhua 阅读数 3948

一、LINUX安装sqlite3

1、下载最新版的sqlite3,网址:http://www.sqlite.org/download.html

下载sqlite-autoconf-3150200.tar.gz

2、下载成功后解压并安装

[root@localhost]# tar -zxvf sqlite-autoconf-3150200.tar.gz   (解压)

[root@localhost]# cd sqlite-autoconf-3150200   (进入文件夹)

[root@localhost]# ./configure   (默认配置)

[root@localhost]# sudo make   (编译生成)

[root@localhost]# sudo make install  (软件安装)

 

扩展:如果需交叉编译等,修改./configure --help下的配置。

如果你需指定目录 ./configure --prefix=/home/local/......

如果你的系统是64,而需产生32位的sqlite3,需要在CFLAGS后增加-m32

提前是你系统已经支持-m32的编译。如果不是,请百度。

PS:(小编我是小白,./configure CFLAGS 用不来,我是直接修改Makefile文件 里面CFLAGS = -g -O2 -m32

 

默认情况下,make install 生产的sqlite3.so 是在/usr/local/lib下,sqlite3.exe是在/usr/local/bin,sqlite3.h是在/usr/local/include下。

二、测试

在任意目录下新建一个数据库,比如sample

命令:

[root@localhost]# sqlite3 sample

会出现如下提示:

SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>

输入 .help可以看到命令列表

输入 .exit 退出。

 

用代码测试

#include <stdio.h>  

#include <stdlib.h>  

#include <sqlite3.h>  

int main(void)  

{  

sqlite3 *db;  

int ret =0;

ret = sqlite3_open("sample",&db);

if(ret !=SQLITE_OK)

{

printf("sqlite3 test err = %d\r\n" , ret);

return -1;

}

printf("sqlite3 test ok\r\n");

sqlite3_close(db);

return 0;

}

.c文件和数据库文件放在同一个目录下,并用GCC编译

[root@localhost]# gcc db_test.c -lsqlite3  

如果你是指定编译32位库,则使用命令

[root@localhost]# gcc -m32 db_test.c -lsqlite3

运行:

 

 

三、问题调试

如果运行出现这样问题:

[root@localhost]# ./a.out
./db.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory

这个问题因为刚刚编译的时候没有选择静态编译,那么按照默认的编译就动态编译的。
动态编译后,由于可执行文件在运行时要调用系统库文件,
那么沿着系统默认的库文件搜索路径搜索,就可能找不到我们现在所需的库文件。
致使出现 "error while loading shared libraries" 等错误。

我们可以这样解决:

重新配置系统环境变量 LD_LIBRARY_PATH这时需要指定 libsqlite3.so.0 库文件的路径,也就是配置系统环境变量 LD_LIBRARY_PATH ,使系统能够找到 libsqlite3.so.0 。

[root@localhost]# export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH

好拉,现在再运行
[root@localhost]# ./a.out

[root@localhost]# sqlite3 test ok

但是,export LD_LIBRARY_PATH 添加方式仅限你这次打开的shell,非永久,故应该将环境变量添加到/etc/ld/.so.conf下。并且ldconfig一次,使之生效。

[root@localhost]# sudo gedit /etc/ld/.so.conf

最后一行添加 /usr/local/lib

保存退出

[root@localhost]# ldconfig


博文 来自: iteye_4476

博文 来自: force_eagle
没有更多推荐了,返回首页