• emacs as the c++ ide on the Ubuntu


    emacs as the c++ ide on the Ubuntu

    emacs as the c++ ide on the Ubuntu

    Install tools

    If you don't already have g++, make, and gdb, install them:

    sudo apt-get install g++ make gdb
    

    Create files

    Create a project directory:

    mkdir hellworld
    

    Create a source file helloworld/hello.cpp:

    #include <iostream>
    
    int main(void) 
    {
       char greeting[] = "Hello World!";
       std::cout << greeting << std::endl;
       return 0;
    }
    

    Create a makefile helloworld/Makefile:

    # Makefile for GNU g++
    
    CC=g++
    CFLAGS=-g -Wall
    all: hello
    
    hello: hello.cpp
        $(CC) $(CFLAGS) -o hello hello.cpp
    
    clean:
        rm hello
    

    Compile within Emacs

    Open hello.cpp in Emacs

    M-x compile RET
    
    make -k RET
    

    Run using Emacs shell

    M-! ./hello RET
    

    You should see the output in the minibuffer.

    Debug with gdb in Emacs

    For more information see: 32.6 Running Debuggers Under Emacs in the GNU Emacs manual.

    To show multiple debugging windows such as breakpoints, locals, etc., set the gdb-many-windows variable in ~/.emacs:

    (setq gdb-many-windows t)
    

    Restart Emacs.

    Start the debugger. While visiting helloworld/hello.cpp: M-x gdb RET --annotate=3 hello RET

    Set a breakpoint by clicking in the left margin at the desired location.

    Run the debugger by typing run at the (gdb) prompt in the gud-hello buffer.

    In the GUD buffer, use the following commands:

    C-c C-s Step into
    C-c C-n Stev over
    C-c C-p Evaluate the expression at point.
    C-c C-r Continue
    C-c C-u Continue until current line
    
    

    When finished, type quit at the (gdb) prompt.

    GDB quick reference

    l => list
    break 16 => breakpoint at line16
    r => run
    n => next
    p i => print i
    c => continue
    q => quit
    bt => check the function stack
    

    http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf


    Post by: Jalen Wang (转载请注明出处)

  • 相关阅读:
    bless for you...
    Unity3D 热更新方案(集合各位专家的汇总)
    Unity与iOS原生代码之间的相互调用
    unity android相互调用
    unity3d资源打包总结
    Unity3D热更新LuaFramework入门实战
    unity插件开发
    Unity3D性能优化总结
    正确释放Vector的内存
    CCLuaObjcBridge
  • 原文地址:https://www.cnblogs.com/jalenwang/p/3064817.html
Copyright © 2020-2023  润新知