分类:工具

工欲善其事,必先利其器。

windows 下安装 clang5.0

  • 下载 llvm5.0-win64 ,安装到 D:/llvm64-500
  • 下载 MinGW-W64 GCC-5.4.0 x86_64-posix-seh , 安装到 D:/mingw64-540
    • 5.4.0 当前的稳定版本(Qt 当前使用 5.3.0)
    • x86_64 是 64 位版本, i686 是 32 位版本
    • posix 支持 c++11 线程,win32 无 c++11 线程特性
    • mingw64 有 seh 和 sjlj 两种异常处理版本 ,clang 仅支持 seh 版本,不支持用 sjlj 版本
    • mingw32 有 dwarf 和 sjlj 两种异常处理版本,clang 仅支持 dwarf 版本,但 dwarf 不能在不支持 dwarf 的 dll 间传递异常
  • D:/llvm64-500/bin D:/mingw64-540/bin 添加到 PATH 变量
  • 添加下列环境变量

    CC=clang
    CXX=clang++
    CFLAGS=-target x86_64-pc-windows-gnu
    CXXFLAGS=-target x86_64-pc-windows-gnu
    
  • clang3.7 版本之前,不需要设置 CFLAGS CXXFLAGS 编译目标,因为 windows 下仅支持 MinGW 编译工具;clang3.8 版本之后,需要设置编译目标,因为可以支持 MSVC 编译工具,默认编译目标是 i686-pc-windows-msvc 。修改编译目标为 x86_64-pc-windows-gnu .
  • clang 的 -target 编译目标需要在命令行中指定,gcc 可以直接从环境变量中读取。
  • 如果需要 64 位编译环境,则 llvm 和 mingw 都要安装 64 位版本的。
  • 如果是 64 位系统,可以直接安装 llvm 64 位,兼容编译 32 位和 64 位程序
  • 切换 64/32 位编译系统,需要做以下设置(LLVM 使用 64 位,不用切换)
    • 切换环境变量 CFLAGS, CXXFLAGS, LDFLAGS
    • 切换 PATH mingw32-540/mingw64-540
    • clion toolchain 切换 mingw32/mingw64

ubuntu 批量编码转换

  • 查询编码

    find . \( -name "*.cpp" -or -name "*.c" -or -name "*.h" \) -type f -exec file -i {} \; > /tmp/a
  • 转换

    find . -name "*" -type f -exec iconv -f GBK -t UTF-8 {} -o /home/share/jni/{} \;
  • 转换脚本

    #!/bin/sh
    FILES=$(find . -type f -name '*.*')
    for f in $FILES
    do
        if test -f $f; then
            CHARSET="$( file -bi "$f"|awk -F "=" '{print $2}')"
            echo $CHARSET
            if [ "$CHARSET" = iso-8859-1 ]; then
                echo "Converting $f from $CHARSET to utf-8"
                # iconv -f "$CHARSET" -t utf-8 "$f" -o "$f.temp"
                iconv -f GBK -t UTF-8 "$f" -o "$f.temp"
                mv -f "$f.temp" $f
            fi
        else
            echo "Skipping $f - it's a regular file";
        fi
    done
    
  • 参考链接

ubuntu server 上安装 xfce 并远程访问

  • 安装 xfce

    apt install xfce4
  • 安装 vncserver

    apt install vnc4server
  • 设置 vncserver 密码

    vncserver :1
    vncserver -kill :1
  • 修改 vncserver 启动文件

    vim ~/.vnc/xstartup
    #x-window-manager &
    sesion-manager & xfdesktop & xfce4-panel &
    xfce4-menu-plugin &
    xfsettingsd &
    xfconfd &
    xfwm4 & 
    scim -d &
    fcitx &
    
  • 启动 vncserver

    vncserver -geometry 1920x1080
  • 从 window vnc 连接连接名称为 IP:1
  • 创建 clion 菜单项

    vim ~/.local/share/applications/.desktop
    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=clion
    Exec=/home/share/clion-2017.1.1/bin/clion.sh
    Icon=/home/share/clion-2017.1.1/bin/clion.svg
    Categories=Development
    
  • 隐藏 panel
    • Applications -> Settings -> Settings Manager -> Panel
    • panel1, panel2 都设置为自动隐藏
  • 安装字体
    • 安装思源黑体

      curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKsc-hinted.zip
      unzip NotoSansCJKsc-hinted.zip -d noto
      cd noto
      mkdir -p /usr/share/fonts/opentype/noto
      cp *otf /usr/share/fonts/opentype/noto
      fc-cache -f -v
      
    • 安装文泉驿字体

      apt install fonts-wqy-microhei fonts-wqy-zenhei
  • 终端 tab 不能补全问题

    vim ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
    <!-- <property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/> -->
    <property name="&lt;Super&gt;Tab" type="empty"/>
    
  • 安装 sublime-text3

    add-apt-repository ppa:webupd8team/sublime-text-3
    apt update
    apt install sublime-text-installer
    
    • 打开 Settings -> MIME Type Editor,修改文本文件的默认打开方式
  • 安装 7z, rar 解压

    apt install p7zip-full
    7z x archive.7z
    
  • 安装其它软件

    apt install firefox
    apt install gnome-commander
    apt install terminator
    
  • vnc4server 下使用中文输入法

    apt install fcitx fcitx-frontend-all fcitx-tools fcitx-config-gtk2 fcitx-table-wbpy im-switch scim
    e ~/.xprofile #append
    export XMODIFIERS=@im=fcitx
    export XIM=fcitx
    export XIM_PROGRAM=fcitx
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    
    e ~/.vnc/xstartup  #append
    scim -d &
    fcitx &
    
    • 修改切换输入法快捷键为 Ctrl-Alt-SPC
  • 快捷键冲突
    • Settings -> Windows Manager -> Clear 所有冲突快捷键
  • oh-my-zsh

    apt install zsh autojump thefuck silversearcher-ag
    chsh -s $(which zsh)
    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
    vim ~/.zshrc #modify
    ZSH_THEME="ys"
    . /usr/share/autojump/autojump.sh
    

在 ubuntu server 上搭建 C++ 远程开发环境

  • 安装开发软件

    apt install build-essential
    apt install clang
    apt install cmake
    apt install git
    apt install subversion
    apt install ninja ninja-build
    apt install gcc-multilib g++-multilib lib32z1-dev #用于 32 位交叉编译
    
  • 安装并配置 samba

    apt install samba smbclient
    cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    
    emacs /etc/samba/smb.conf
    [share]
      comment = Share Folder require password
      browseable = yes
      path = /home/share
      create mask = 0777
      directory mask = 0777
      valid users = share
      force user = nobody
      force group = nogroup
      public = yes
      writable = yes
      available = yes 
    
    groupadd share -g 6000
    useradd share -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
    smbpasswd -a share
    
    mkdir /home/share
    chmod 777 /home/share
    /etc/init.d/smbd restart