Gcc行为不端,即使相同的版本工作正常

时间:2014-10-26 19:42:35

标签: macos bash gcc terminal

我最近使用Macports将Snow Leopard Mac上的gcc从4.2升级到4.7。 Intallation很好,完全成功。我打开终端进行测试,两个相同的版本,一个工作,一个不工作。看看:

iMac:bin john$ cp x86_64-apple-darwin10-gcc-4.7.4 gcc
cp: gcc and x86_64-apple-darwin10-gcc-4.7.4 are identical (not copied).

iMac:bin john$ gcc --help
gcc-mp-4.7: error trying to exec '/opt/local/bin/i686-apple-darwin10-gcc-4.2.1': execvp: No such file or directory

iMac:bin john$ x86_64-apple-darwin10-gcc-4.7.4 --help
Usage: x86_64-apple-darwin10-gcc-4.7.4 [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
                           Display specific types of command line options
  (Use '-v --help' to display command line options of sub-processes)
  --version                Display compiler version information
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path
  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multiarch         Display the target's normalized GNU triplet, used as
                           a component in the library path
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -print-sysroot           Display the target libraries directory
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor
  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor
  -Xlinker <arg>           Pass <arg> on to the linker
  -save-temps              Do not delete intermediate files
  -save-temps=<arg>        Do not delete intermediate files
  -no-canonical-prefixes   Do not canonicalize paths when building relative
                           prefixes to other gcc components
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries
  -B <directory>           Add <directory> to the compiler's search paths
  -v                       Display the programs invoked by the compiler
  -###                     Like -v but options quoted and commands not executed
  -E                       Preprocess only; do not compile, assemble or link
  -S                       Compile only; do not assemble or link
  -c                       Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -pie                     Create a position independent executable
  -shared                  Create a shared library
  -x <language>            Specify the language of the following input files
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by x86_64-apple-darwin10-gcc-4.7.4.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<https://trac.macports.org/newticket>.
iMac:bin john$ 

根据操作系统,gcc(简写)及其完整文件是相同的,这是有道理的。但是当我使用速记测试gcc时,有一个奇怪的错误,看起来4.2版本的更新存在问题。当我用完整的文件测试它(再次,与速记相同),它的工作原理。这怎么可能,如果你能说出gcc有什么问题,我该怎样做才能让gcc从命令行再次运行?

0 个答案:

没有答案