有没有办法让gcc,icc或clang作为一系列等效的Shell命令来显示它们的作用?特别是,我希望看到编译到汇编后的所有内容。

我不确定询问确切使用的Shell命令还是通过API使用这些工具是否有意义。不过,应该有等效的Shell命令序列。

最佳答案

用c:

[9:49am][wlynch@apple /tmp] /opt/llvm/3.4/bin/clang++ -### foo.cc
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
 "/opt/llvm/3.4/bin/clang" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free" "-disable-llvm-verifier" "-main-file-name" "foo.cc" "-mrelocation-model" "static" "-mdisable-fp-elim" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-target-linker-version" "2.20.51.0.2" "-resource-dir" "/opt/llvm/3.4/bin/../lib/clang/3.4" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/x86_64-redhat-linux" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/backward" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/x86_64-redhat-linux/c++/4.4.7" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/opt/llvm/3.4/bin/../lib/clang/3.4/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-fdeprecated-macro" "-fdebug-compilation-dir" "/tmp" "-ferror-limit" "19" "-fmessage-length" "182" "-mstackrealign" "-fobjc-runtime=gcc" "-fcxx-exceptions" "-fexceptions" "-fdiagnostics-show-option" "-fcolor-diagnostics" "-vectorize-slp" "-o" "/tmp/foo-048f22.o" "-x" "c++" "foo.cc"
 "/usr/bin/ld" "--eh-frame-hdr" "-m" "elf_x86_64" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-o" "a.out" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o" "-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7" "-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64" "-L/lib/../lib64" "-L/usr/lib/../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.." "-L/lib" "-L/usr/lib" "/tmp/foo-048f22.o" "-lstdc++" "-lm" "-lgcc_s" "-lgcc" "-lc" "-lgcc_s" "-lgcc" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o"

关于c++ - 显示对诸如as,ar,ld之类的工具的编译器调用或确定等效调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24207872/

10-13 06:59