2016-01-10 87 views
-4

我知道這看起來像一個愚蠢的問題,但如何在中使用諸如-Wall-pedantic之類的標誌來命名可執行文件?命名一個可執行文件c

我有一個名爲test.c的文件,另一個名爲function.c的地方,我寫了我需要的函數test.c。 我用這個命令編譯:gcc -Wall -pedantic test.c

我應該在哪裏放置可執行文件的名字?我嘗試了每個地方,但似乎並不奏效。我的編譯器缺乏什麼或什麼?

回答

1

您需要使用-o選項,這樣

gcc -Wall -pedantic -o MY_EXECUTABLE_NAME test.c 
#     ^here (output file name option) 

你知道,你總是可以做gcc --help

Usage: gcc [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 gcc. In order to pass 
other options on to these processes the -W<letter> options must be used. 

For bug reporting instructions, please see: 
<http://bugzilla.redhat.com/bugzilla>. 
+0

好的,非常感謝,我被教導錯了。所以我可以在任何情況下使用-o? –

+0

是的,你可以,你可以從幫助頁面看到。 –

1

的gcc -o output_name中-Wall -pedant file.c

0

U應該在文件名之前使用-o,因爲它會創建代碼文件的目標文件。