ubuntu下用CLion首次跑C++(CMake练习)

ubuntu下用CLion首次跑C++

text/CMakeLists.txt中其中hello.cpp在/text/lib下,useHello.cpp在/text/下

# 设置你的CMake的最低版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
# 起一个项目名
project(text)
# 编译模式
set(CMAKE_BUILD_TYPE  "Release")
# 编译主文件
# ADD_SUBDIRECTORY(lib)
# ADD_SUBDIRECTORY(src bin)

ADD_EXECUTABLE(sayhello useHello.cpp)
# 找主文件
# find_package()
# 添加头文件(即hello.cc所在的位置)   ${PROJECT_SOURCE_DIR}指的是原文件的路径
include_directories(${PROJECT_SOURCE_DIR}/include)
# 编译动态链接库
# hello 决定输出为labhello.so
add_library(hello SHARED ${PROJECT_SOURCE_DIR}/src/hello.cpp)
# 与源文件建立联系
TARGET_LINK_LIBRARIES(sayhello hello)
# hello.h 放到/usr/local/include下面  .h-->FILES
INSTALL(FILES hello.h DESTINATION /home/zhe/usr/local/include)

# libhello.so 放到/usr/local/include下面   .so-->TARGETS
INSTALL(TARGETS hello DESTINATION /home/zhe/usr/local/lib)

其中,add_library(hello SHARED ${PROJECT_SOURCE_DIR}/lib/hello.cpp)的hello 决定输出为labhello.so

编写完后打开sayhello.cpp 运行就可以首次运行可能会提示需要 new Configuration

解决:在CMakeList.txt文件上 右键: Reload CMake Project

下面是助教提供的方案:在zhuoye/ch1下的text

问题来源完成3.4:4、 最后在工程目录下创建一个build文件夹,在build文件夹中输入cmake . .和sudo make install,然后在/build/bin文件中找到sayhello的可执行文件,

问题解决1:在这里插入图片描述
在这里插入图片描述在这里插入图片描述

图1-1

运行结果如下图所示:

在这里插入图片描述

图1-2

我的方案:在zhuoye/ch1下的ch0也会出现问题解决1的问题

完善后的方案为在zhuoye/ch1下的ch1

目录如下:

在这里插入图片描述

图1-3

其中:ch1/CMakeLists.text为:

# 设置你的CMake的最低版本(若是没有设置会给警告)
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
# 起一个项目名
project(text)
 # 添加外部文件夹
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(code bin)

ch1/src/CMakeLists.text为:

# 设置你的CMake的最低版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
# 起一个项目名
project(text)
# 编译动态链接库
# hello 决定输出为labhello.so   (hello,c改为.cc或.cpp)
  # (把老师给的hello.c和useHello.c改为.cc或者.cpp文件,,//否者会报ubuntu cmake Fatal error: iostream: No such file or directory)
ADD_LIBRARY(hello SHARED hello.cpp)
# hello.h 放到/usr/local/include下面  .h-->FILES
INSTALL(FILES hello.h DESTINATION /home/zhe/usr/local/include)

# libhello.so 放到/usr/local/include下面   .so-->TARGETS
INSTALL(TARGETS hello DESTINATION /home/zhe/usr/local/lib)

ch1/code/CMakeLists.text为:

# 设置你的CMake的最低版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
# 起一个项目名
project(text)
# 添加头文件(即hello.c所在的位置)   ${PROJECT_SOURCE_DIR}指的是原文件的路径
include_directories(~/1/lianxi/1/ch1/src)
#include_directories(${PROJECT_SOURCE_DIR}/src)   #会报错因为sayhello.cpp在code下,,如果在主文件下或在hello.h在其目录下(或在其子目录下)可以用${PROJECT_SOURCE_DIR}
# 编译主文件(useHello.c改为.cc或.cpp)
ADD_EXECUTABLE(sayhello useHello.cpp)
# 与源文件建立联系
TARGET_LINK_LIBRARIES(sayhello hello)

运行结果如下图1-4所示

在这里插入图片描述

图1-4
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值