在Oracle 11.2上用Gcc进行64bit编译(Solaris 11, x86)
来源:互联网 发布:神通数据库下载 编辑:程序博客网 时间:2024/06/05 17:54
从11.2版起,Oracle取消了ORACLE_HOME下的lib32 Directory,从32/64bit的双轨制彻底走向64bit的单轨路线。
对于一些还希望使用32bit的人,解决问题的办法就是再安装一个32bit的Oracle Client。(当然,这回生成另一个ORACLE HOME。这应该没问题,可惜我没试过。)
但是,我遇到的问题是,用户希望升级到64bit,从原来的cc更换到gcc,但又不愿修改大量的make文件。
1. 安装gcc package。
首先搜索gcc。
# pkg search gcc
INDEX ACTION VALUE PACKAGE
pkg.description set GCC Runtime - Shared libraries used by gcc and other gnu components pkg:/system/library/gcc-3-runtime@3.4.3-0.175.0.0.0.2.537
pkg.summary set GCC Runtime libraries pkg:/system/library/gcc-3-runtime@3.4.3-0.175.0.0.0.2.537
pkg.summary set GCC - 4.5 Compilers pkg:/developer/gcc-45@4.5.2-0.175.0.0.0.2.537
pkg.summary set GCC - 4.5 Runtime pkg:/system/library/gcc-45-runtime@4.5.2-0.175.0.0.0.2.537
basename hardlink usr/sfw/bin/gcc pkg:/developer/gcc-3@3.4.3-0.175.0.0.0.2.537
basename link usr/bin/gcc pkg:/developer/gcc-45@4.5.2-0.175.0.0.0.2.537
pkg.description set GCC Runtime - Shared libraries used by gcc and other gnu components pkg:/system/library/gcc-3-runtime@3.4.3-0.175.0.0.0.2.537
pkg.summary set gcc - The GNU C compiler pkg:/developer/gcc-3@3.4.3-0.175.0.0.0.2.537
basename dir usr/gcc pkg:/system/library/gcc-45-runtime@4.5.2-0.175.0.0.0.2.537
basename dir usr/gcc/4.5/lib/gcc pkg:/system/library/gcc-45-runtime@4.5.2-0.175.0.0.0.2.537
basename dir usr/sfw/lib/gcc pkg:/developer/gcc-3@3.4.3-0.175.0.0.0.2.537
basename dir usr/sfw/libexec/gcc pkg:/developer/gcc-3@3.4.3-0.175.0.0.0.2.537
basename dir usr/gcc pkg:/developer/gcc-45@4.5.2-0.175.0.0.0.2.537
basename dir usr/gcc/4.5/lib/gcc pkg:/developer/gcc-45@4.5.2-0.175.0.0.0.2.537
basename file usr/gcc/4.5/bin/gcc pkg:/developer/gcc-45@4.5.2-0.175.0.0.0.2.537
这里给出了好几个版本的gcc Package信息。
比如,你想安装3.4.3版的gcc compiler。
# pkg install pkg:/developer/gcc-3@3.4.3-0.175.0.0.0.2.537
2. 为了不修改make文件而做的一个cc文件
下面是一个使用Unix原装cc的Make文件的例子(部分)。
# makefile
PROC = proc
CC = cc
INCLUDE = -I ${ORACLE_HOME}/precomp/public -I ../inc
INC = ${HOME}/JBP/src/inc/
OBJ = ${HOME}/JBP/src/obj/
......
安装的gcc在哪里?
#which gcc
/usr/sfw/bin/gcc
做个cc文件,其内容超简单:
/usr/sfw/bin/gcc -m64 $*
注意,这里的 -m64, 它指示gcc生成64bit编译代码。
$* 则接收cc 之后的一切参数。
cc必须可执行。
# ls -l cc
-rwxr-xr-x 1 root root 25 Nov 6 14:21 cc
3. 验证
$ echo $SHELL
/usr/bin/bash
$ echo $PATH
/usr/bin:/usr/sbin:/usr/sfw/bin
$ which cc
/usr/sfw/bin/cc
$ more test.c
#include <stdio.h>
int main(void){
printf("Content-type: text/plain\n\n");
printf("Hello, World!");
return 0;
}
$ cc test.c
$ ls -ltr
total 15
-rw-r--r-- 1 zhang staff 130 11月 5日 17:46 test.c
-rwxr-xr-x 1 zhang staff 9992 11月 7日 13:11 a.out
$ file a.out
a.out: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, not stripped, no debugging information available
可见,使用gcc的别名产生的Object文件是64bit。
同理,使用make文件的编译链接也未见异常。
- 在Oracle 11.2上用Gcc进行64bit编译(Solaris 11, x86)
- 为什么gcc在64位Solaris上编译出来的程序默认是32位的?
- Fedora21安装RTEMS4.11编译环境(X86-64bit)
- ACE 5.4 + TAO 1.4 在Solaris 10 for X86 + Sun Studio 10 上 编译全攻略
- 在Solaris 10 X86上安装Oracle 10g RAC详解
- 转:在solaris 10 u3 x86上安装oracle 10g r2时,按照安装手册
- 在Solaris 10 X86上安装Oracle 10g RAC详解 (2)
- 在Solaris 10 X86上安装Oracle 10g RAC详解 (1)
- gcc在solaris上安装的过程
- 在Solaris上编译redis(2.8.13)
- 在HP520(KD074)上安装Solaris x86 B80
- 在sun solaris上安装oracle 11g
- 在Solaris上编译Ethereal的注意事项
- 关于在Solaris上进行配置Oracle环境的JDBC的方法的说明
- fedora18-64 bit安装STM32 GCC编译环境(1)
- 在Ubuntu 14.04 64bit上进行md5加密编程
- 在Mac OS X 10.9.1(x86, 64-bit)上配置MySQL数据库
- 在Mac OS X 10.9.1(x86, 64-bit)上配置MySQL数据库
- 一些链接
- 基于HalfEdge模型加面算法分析(1)
- 第二篇 溢出标志 CF与OF
- js 设计模式 第十二章 Decorator Pattern
- 我们都是爱藏书的人
- 在Oracle 11.2上用Gcc进行64bit编译(Solaris 11, x86)
- GCM Demo "Unfortunately, GCM demo has stopped"
- usb中urb相关接口函数
- 动态规划算法小结
- Android Server Push Notification - Urban Airship
- 比较两个结构体的内容是否相等
- Outlook2003 ---- 无法打开Outlook窗口,无法打开文件夹的集合
- 技术钻研点
- Porject Euler problem 55