01.clion下载
直接官网下载即可,下载地址,https://www.jetbrains.com/clion/download/#section=linux
可免费使用30天,学生利用edu的邮箱申请可获得一年的免费使用。在201831204015@stu.hebut.edu.cn邮箱可以找到网址。学生免费授权网址:https://www.jetbrains.com/zh/student/
注册完毕之后help->register,输入帐号密码即可
02.安装
-
解压下载好的压缩包
-
在解压后的文件内bin文件夹内的终端中输入命令:./clion.sh
-
第2步如果报缺少JDK的错误,按照Ubuntu 16.04安装Java JDKanzhaung开源JDK即可,
安装openjdk
更新软件包列表:$ sudo apt-get update
安装openjdk-8-jdk:$ sudo apt-get install openjdk-8-jdk
查看java版本:$ java -version -
选择自己喜欢的界面风格,全部默认即可,然后是选择安装插件,只选择了VIM 和lua
03.配置环境
-
gedit ~/.bashrc 在最后一行添加export PATH=/opt/bin:${PATH},不知道是否有用,改完之后运行source ~/.bashrc 使修改生效。
-
编辑图标启动文件:
终端中运行gedit ~/.local/share/applications/jetbrains-clion.desktop
显示
[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/home/zhangzhen/clion-2018.3.1/bin/clion.svg
Exec="/home/zhangzhen/clion-2018.3.1/bin/clion.sh" %f
Comment=A cross-platform IDE for C and C++
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion
文件里面可以看到,大概就是制定了快捷方式的图片,需要运行的命令,是否启动终端等配置。我们只需要在每次启动clion的时候加载一下bash(增加bash -i -c指令)就好了。所以将第六行改动一下,变成下面这个样子就好了。
修改之后
[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/home/zhangzhen/clion-2018.3.1/bin/clion.svg
Exec=bash -i -c “/home/zhangzhen/clion-2018.3.1/bin/clion.sh” %f
Comment=A cross-platform IDE for C and C++
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion -
编译过程中生成的文件不是位于build和devel文件夹下
修改Settings->Build->CMake中的设置,将“CMake options”一栏修改为“-DCATKIN_DEVEL_PREFIX:PATH=/home/user_name/workspace_name/devel”;将"Generation path"一栏修改为“/homeuser_name/workspace_name/build”。(TX2的实际为/home/nvidia/clion_ws/ 位于硬盘wenjian/clion project)如下:
-
编译使用的cmake版本
默认情况下,CLion编译使用的CMake是其内置的一个版本,而使用这个版本的CMake进行编译时会报出一些莫名其妙的错误,命令行中catkin_make明明可以正常编译,而这里就是会失败。解决这个问题的办法就是将CLion中的CMake更换为系统中的CMake,具体设置在Settings->Build->Toolchains,可以看到其中的CMake默认为Bundled,我们需要手动指定为系统中的CMake,具体看下图:(==CMake一栏直接手写入cmake即可,Debugger一栏下拉选择)
04.使用
- 在搜索栏直接搜索clion即可找到并打开
- 运行:shift+F10
- Clion 结合主流开发库的cmakelist完整配置
包括opencv4.1.0 json.cpp boost eigen cnpy zxing zbar
cmake_minimum_required(VERSION 3.5)
project(KeekoAIRobot)
set(CMAKE_CXX_STANDARD 14)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3 -DNDEBUG")
#找到opencv的包
set(TARGET_LIBS "/usr/local/include/opencv4/opencv2/")
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
#jsoncpp
set(jsoncpp_include_dir "/usr/local/include")
set(jsoncpp_link_dir "/usr/lib/x86_64-linux-gnu")
include_directories(${jsoncpp_include_dir})
link_directories(${jsoncpp_link_dir})
#boost
find_package(Boost REQUIRED COMPONENTS filesystem)
set(Boost_LIBS boost_filesystem boost_system)
#eigen
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR}${EIGEN3_LIBRARIES})
# cnpy
option(ENABLE_STATIC "Build static (.a) library" ON)
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
add_library(cnpy SHARED "libs/cnpy/cnpy.cpp")
target_link_libraries(cnpy ${ZLIB_LIBRARIES})
install(TARGETS "cnpy" LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
#zbar
set(zbar_include_dir "/usr/local/include")
set(zbar_link_dir "/usr/local/lib")
include_directories(${zbar_include_dir})
link_directories(${zbar_link_dir})
link_libraries(zbar)
#zxing
set(zxing_include_dir "/usr/local/include")
set(zxing_link_dir "/usr/local/lib")
include_directories(${zxing_include_dir})
link_directories(${zxing_link_dir})
link_libraries(zxing)
if(ENABLE_STATIC)
add_library(cnpy-static STATIC "libs/cnpy/cnpy.cpp")
set_target_properties(cnpy-static PROPERTIES OUTPUT_NAME "cnpy")
install(TARGETS "cnpy-static" ARCHIVE DESTINATION lib)
endif(ENABLE_STATIC)
install(FILES "libs/cnpy/cnpy.h" DESTINATION include)
install(FILES "mat2npz" "npy2mat" "npz2mat" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
#多线程
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
#添加运行文件
add_executable(KeekoAIRobot
main.cpp)
#动态链接
#target_link_libraries(pedestrian_detection ${OpenCV_LIBS} )
target_link_libraries(KeekoAIRobot ${OpenCV_LIBS} )
target_link_libraries(KeekoAIRobot jsoncpp)
target_link_libraries(KeekoAIRobot cnpy)
target_link_libraries(KeekoAIRobot zbar)
target_link_libraries(KeekoAIRobot zxing)
# 搜索本目录搜索源码并赋值给变量
#aux_source_directory(. DIR_LIB_SRCS)
# 添加库文件
#add_library(KeekoAILib SHARED ${DIR_LIB_SRCS})