Chris的开发环境列表

文章目录

    • Windows
      • 库目录
      • 终端
      • 编辑器
      • 文本比较、合并
      • 构建系统
      • IDE/编译器
      • 使用linux下的find/grep等工具
      • Python
      • OpenCV
    • Linux
      • 终端连接
      • CUDA/CuDNN
      • 比apt版本要新/旧的软件

一些平时开发环境的软件、设定等

Windows

库目录

通常会基于CMake编译一些三方库,例如opencv, glfw, glew, protobuf等。

  • cmake时,统一指定CMAKE_INSTALL_PREFIXD:/lib///
    例如D:/lib/opencv/3.4.5,这里面是编译好的东西。
  • 对于纯C库,如glfw, glew, freeglut等,通常不需要进入它源码debug,因此只编译Release库。
  • 对于OpenCV库,如果测试多个版本,时间来不及的话,直接从官网下载解build目录内容到D:/lib/opencv/x.y.z目录,有空则手动编译并替换
  • 对于其他C++库,WIP
  • 对于安装好后有bin/xxx.dll的情况,手动添加此bin目录到PATH中
  • 使用CMake>=3.12版本,使用到某个库的项目中,CMakeLists.txt中用set(_ROOT D:/lib//)来配置find()

终端

  • cmd,windows自带
  • git bash,git各种提示都友好,以及不少linux命令
  • PowerShell,默认支持ssh命令
  • XShell,GUI界面,管理多个连接,支持rz/sz隔空传文件操作(缺点:收费;一直用个人评估版容易给公司带来法律问题)
  • hostbuf,模仿Xshell,做的还可以:http://www.hostbuf.com/

编辑器

  • notepad++
    • 带“记忆功能”,打开时默认打开上次关闭时打开的文件
    • 文件内查找功能强大,单独分割出子窗口显示查找结果,每一结果鼠标双击可跳转到对应行
    • 可安装16进制插件,直接查看文件16进制
  • vim/gvim
    • 带命令模式的编辑器,写短小精悍(不需要查文档)的代码或修改配置文件超级方便
    • 配置:https://github.com/zchrissirhcz/dotfiles
  • VSCode
    • 单个文件编辑:C/C++/Python/Markdown
    • 整个工程:例如基于CMake的
    • ftp-sync Remote Development开发套件超级好用

文本比较、合并

  • BeyondCompare: UI好看,功能强大(单文件;目录);收费,破解版有法律风险
  • WinMerge:开源免费,作为BC的替代
  • VSCode:在打开的工程中比较很方便;缺点是文件过大时diff出错。
  • vimdiff: 黑框框下用的

构建系统

  • CMake:强烈推荐。个人目前仍然处于不断摸索中,也有不少经验。

IDE/编译器

  • Visual Studio 2019/2017/2015/2013
    • 我用cmake作为构建系统,直接生成各种VS版本的.sln工程
  • TDM-GCC
    • 好用的gcc

使用linux下的find/grep等工具

  • WSL(Windows Subsystem Linux)
    • 除了不能用cuda、不能用DE之外,各种原生linux命令,很好用

Python

用过的方案:

  • Linux下使用系统自带的python。缺点:不同版本的python切换起来不方便,例如系统是python3.5,实际需要python3.7;不同用户切换起来也不方便。
  • Linux下每个用户使用各自的anaconda。优点是每个人的python不再互相影响。这时候我还不知道可以用conda创建python环境,以为只能用anaconda装好后的那个python环境;发现需要的python版本和anaconda默认的python版本不一致,又去找了anaconda版本和python版本对照表,又下载安装了一个anaconda。
  • Windows下装了python27.exe,发现numpy包需要手动下载,好不容易网络ok下载好了但是编译失败。
  • Windows下装了anaconda2和anaconda3。并且通过环境变量来切换python版本。缺点是装了两个anaconda。
  • 终极:用miniconda

深度学习很多框架,用了不同版本的python。为了切换不同版本python,最方便的方式是装一个miniconda然后用conda创建相应的python环境:(Linux/Mac/Windows下均可)conda create -n py27 python=2.7; conda activate py27; conda deactivate。相比于anaconda,miniconda的安装包要小得多。

设置python源:C:/Users/xxx/pip/pip.conf(windows), ~/.pip/pip.conf(Linux/Mac):

 [global]
 index-url = https://pypi.tuna.tsinghua.edu.cn/simple

OpenCV

OpenCV的C/C++代码,用源码编译安装,安装到D:/lib/opencv/3.4.5。官方windows预编译包无法debug进opencv源码。

opencv2.4.9手动编译时,无法编译python模块。python2和python3都不行。只能从官方预编译包拷贝过来。

Linux

终端连接

  • ssh
    配置~/.ssh/config是很方便的一件事情
  • tmux
    • 多窗口和不惧客户端掉线的训练,都靠tmux了
    • 配置:https://github.com/zchrissirhcz/dotfiles/.tmux.conf
  • oh-my-zsh
    • 注意设定git插件,可能会影响系统速度

CUDA/CuDNN

  • 系统可以安装多个版本的CUDA/CuDNN
  • 推荐由SA统一安装在系统目录下/usr/local/cuda-9.0等
  • 每个用户应当自行配置自己的LD_LIBRARY_PATH来设定/切换CUDA/CuDNN版本
  • SA不应该设定全局的/etc/profile或/etc/ld.so.conf.d;除非整个系统只有你一个人用并且基本上不会切换它们的版本

比apt版本要新/旧的软件

  • 应当自行安装到 H O M E 目 录 下 的 某 个 子 目 录 , 例 如 HOME目录下的某个子目录,例如 HOMEHOME/soft/cmake_3.14,然后修改~/.bashrc~/.zshrc
  • 建议手动安装的(编译或者下载安装均可)
    • cmake
    • ctags
    • vim
  • 建议走apt安装的
    • gcc-4.9(老版gcc/g++)

你可能感兴趣的:(环境配置)