• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

在Oracle 11.2上用Gcc进行64bit编译(Solaris 11, x86)

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

从11.2版起,Oracle取消了ORACLE_HOME下的lib32 Directory,从32/64bit的双轨制彻底走向64bit的单轨路线。 对于一些还希望使用32bit的人,解决问题的办法就是再安装一个32bit的Oracle Client。(当然,这回生成另一个ORACLE HOME。这应该没问题,可惜我没试

从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/[email protected]
pkg.summary set GCC Runtime libraries pkg:/system/library/[email protected]
pkg.summary set GCC – 4.5 Compilers pkg:/developer/[email protected]
pkg.summary set GCC – 4.5 Runtime pkg:/system/library/[email protected]
basename hard

本文来源gao!daima.com搞$代!码#网#

link usr/sfw/bin/gcc pkg:/developer/[email protected]
basename link usr/bin/gcc pkg:/developer/[email protected]
pkg.description set GCC Runtime – Shared libraries used by gcc and other gnu components pkg:/system/library/[email protected]
pkg.summary set gcc – The GNU C compiler pkg:/developer/[email protected]
basename dir usr/gcc pkg:/system/library/[email protected]
basename dir usr/gcc/4.5/lib/gcc pkg:/system/library/[email protected]
basename dir usr/sfw/lib/gcc pkg:/developer/[email protected]
basename dir usr/sfw/libexec/gcc pkg:/developer/[email protected]
basename dir usr/gcc pkg:/developer/[email protected]
basename dir usr/gcc/4.5/lib/gcc pkg:/developer/[email protected]
basename file usr/gcc/4.5/bin/gcc pkg:/developer/[email protected]

这里给出了好几个版本的gcc Package信息。

比如,你想安装3.4.3版的gcc compiler。

# pkg install pkg:/developer/[email protected]

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

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文件的编译链接也未见异常。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在Oracle 11.2上用Gcc进行64bit编译(Solaris 11, x86)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址