有没有一种透明的方法可以强制在Solaris上编译64位gcc

有没有一种透明的方法可以强制在Solaris上编译64位gcc,gcc,64-bit,solaris,Gcc,64 Bit,Solaris,是否有办法强制'-m64'不覆盖CXXFLAGS/CFLAGS。我想要像Linux/BSD amd64那样的自动x64构建环境 为什么我需要这个 问题是项目的复杂性,我需要在Solaris上构建为x64。它包含几个部分,每个部分可能使用特定的C/C++编译器标志。所以,我不能只是跑: CXXFLAGS=-m64 O2 ... CFLAGS=-m64 -O2 ... ./configure 因为没有通用的C/C++标志 我所需要的只是将'-m64'透明地附加到每个gcc/g++调用。您可以编写一

是否有办法强制'-m64'不覆盖CXXFLAGS/CFLAGS。我想要像Linux/BSD amd64那样的自动x64构建环境

为什么我需要这个

问题是项目的复杂性,我需要在Solaris上构建为x64。它包含几个部分,每个部分可能使用特定的C/C++编译器标志。所以,我不能只是跑:

CXXFLAGS=-m64 O2 ...
CFLAGS=-m64 -O2 ...
./configure
因为没有通用的C/C++标志

我所需要的只是将'-m64'透明地附加到每个gcc/g++调用。

您可以编写一个包装器(例如:~/bin/gcc),该包装器将添加所需的选项并将~/bin放在路径的第一位。例如:

#!/bin/ksh
/usr/sfw/bin/gcc -m64 "$@"
您可以编写一个包装器(例如:~/bin/gcc),它将添加所需的选项并将~/bin放在路径的第一位。例如:

#!/bin/ksh
/usr/sfw/bin/gcc -m64 "$@"

CPPFLAGS用于c预处理器。gcc和g++都应该使用它


参考资料:

CPPFLAGS用于c预处理器。gcc和g++都应该使用它


参考资料:

谢谢您的回答!这是一个相当丑陋的解决办法。实际上,我已经找到了simalar的方法——我覆盖CC=“gcc-m64”和CXX=“g++-m64”。现在可以了。不幸的是,这样的黑客似乎是解决这个问题的唯一可能。这有多可靠?我们是否需要覆盖LD或其他东西?与其说是一个丑陋的要求,还不如说是一个丑陋的解决方法。。。无论如何,只要构建脚本/工具不改变路径(resp CC/CXX)变量,该方法就应该是可靠的。不需要覆盖LD或其他任何东西。好吧。既然没有其他办法(至少看起来是这样),我接受你的回答。尽管如此,我不明白为什么你们认为需求是丑陋的。盲目地用64位构建所有东西是值得怀疑的。无论如何,这不是Solaris用来做事的方式。是的。Solaris根本没有提出任何建议),我描述了为什么需要“盲”编译。无论如何,我认为Linux上的替代方案、Mac OS上的gcc_select或VisualStudio环境脚本(vsvars.bat)都会很好。谢谢你的回答!这是一个相当丑陋的解决办法。实际上,我已经找到了simalar的方法——我覆盖CC=“gcc-m64”和CXX=“g++-m64”。现在可以了。不幸的是,这样的黑客似乎是解决这个问题的唯一可能。这有多可靠?我们是否需要覆盖LD或其他东西?与其说是一个丑陋的要求,还不如说是一个丑陋的解决方法。。。无论如何,只要构建脚本/工具不改变路径(resp CC/CXX)变量,该方法就应该是可靠的。不需要覆盖LD或其他任何东西。好吧。既然没有其他办法(至少看起来是这样),我接受你的回答。尽管如此,我不明白为什么你们认为需求是丑陋的。盲目地用64位构建所有东西是值得怀疑的。无论如何,这不是Solaris用来做事的方式。是的。Solaris根本没有提出任何建议),我描述了为什么需要“盲”编译。无论如何,我认为Linux上的替代方案、Mac OS上的gcc_select或VisualStudio环境脚本(vsvars.bat)都是不错的选择。