美文网首页
MAC中的C++开发, since 2020-06-30

MAC中的C++开发, since 2020-06-30

作者: Mc杰夫 | 来源:发表于2020-06-30 22:54 被阅读0次

    (2020.06.30)

    • 如何complie和run一个文件,在terminal中
      在terminal输入gcc -o target_file xxx.cpp。其中xxx.cpp是被complie的文件,target_file是compile后保存的文件。如果compile通过,则在同一个目录下生成target_file的文件。输入./target_file即可运行该文件。

    (2020.11.08 Sun)
    上面用到的编译工具gcc(GNU compiler collection)是GNU开发的编译器,支持C/C++/JAVA/GO等语言。其常用的指令如下。首先生成一个main.c文件如下

    #include<stdio.h>
    int main(void)
    {
       printf("\n some text\n");
       return 0;
    }
    
    • 指定可执行文件 -o
    $gcc main.c #最简单调用方式
    $gcc main.c -o main # 编译main.c并生成一个名为main的可执行文件
    

    (2020.11.10 Tues)

    • 显示所有warning信息 -Wall
    $gcc -Wall main -o main
    
    • 只看预处理结果 -E
    $gcc -E main.c > main.i
    
    • 生成汇编代码 -S
    $gcc -S main.c > main.s
    
    • 仅生成complied code(不含连接link) -C
    $gcc -C main.c #生成main.o
    
    • 生成所有中间文件(含可执行文件) -save-temps
    $gcc -save-tempts main.c
    $ls
    a.out main.c main.i main.o main.s
    
    • 与共享库连接 -l
    $gcc -Wall main.c -o main -lCPPfile # main.c与libCPPfile库相连,生成最终main
    
    • 创建位置独立代码 -fPIC
      该指令用于创建共享库,使其位置独立
    $gcc -c -Wall -Werror -fPIC Cfile.c
    $gcc -shared -o libCfile.so Cfile.o
    
    • 打印所有executed指令 -v
    $gcc -Wall -v main.c -o main
    
    • Enable the support of ISO C89 programs -ansi
    $gcc -Wall -ansi main.c -o main
    
    • 字符char翻译成无符号字符 -funsigned-char
    $gcc -Wall -funsigned-char main.c -o main
    
    • 字符char翻译成有符号字符 -fsigned-char
    $gcc -Wall -fsigned-char main.c -o main
    
    • 编译时间宏complie time macro -D
    $gcc -Wall -DMY_MACRO main.c -o main
    
    • warning转化成error -Werror
    $gcc -Wall -Werror main.c -o main
    
    • 通过文件给出gcc的选项 @
    $cat option_file #选项写入option_file这个文件
    -Wall -omain
    $gcc main.c @option_file
    main.c: In function ‘main’:
    main.c:6:11: warning: ‘i’ is used uninitialized in this function [-Wuninitialized]
    $ls main
    main
    

    相关文章

      网友评论

          本文标题:MAC中的C++开发, since 2020-06-30

          本文链接:https://www.haomeiwen.com/subject/fvzfqktx.html