乐于分享
好东西不私藏

C/C++源码安装全解

C/C++源码安装全解

通常C、C++项目代码是十分庞大的,这时候如果还是用gcc、g++一个一个编译成目标文件、再链接成可执行程序,是一个十分庞杂的工程。但不用担心,因为cmake/make工具的出现,正是解决这个问题的。下面也来讲一下:

P 1、C/C++构建工具——cmake/make

(1)一个典型的构建流程(已有项目源代码)

程序员开发完项目后,要编写CMakeLists.txt文件,如果你下载的开源项目里有这个文件,就是用下面这个流程。

# 1. 创建构建目录mkdir build && cd build# 2. 生成构建系统cmake ..    # 生成Makefile# 3. 编译make# 4. 安装sudo make install

(2)关于CMakeList.txt文件——它是描述程序代码结构、创建Makefile的文件

# cmake工具版本 cmake_minimum_required(VERSION 3.10)# 项目名称 project(MyProject)# 添加可执行文件add_executable(myapp main.cpp utils.cpp)# 添加库add_library(mylib STATIC lib.cpp)# 链接库target_link_libraries(myapp mylib)

(3)关于Makefile文件——它是cmake根据CmakeList.txt文件的输出结果。

# 目标文件: 依赖文件app: main.o utils.o    gcc main.o utils.o -o appmain.o: main.c    gcc -c main.cutils.o: utils.c    gcc -c utils.cclean:    rm -f *.o app

P 2、一个C/C++构建项目实战

(1)准备环境

# Ubuntu/Debiansudo apt updatesudo apt install build-essential git cmake# macOSxcode-select --installbrew install cmake git# Windows# 安装MinGW或Visual Studio

(2)获取源码

# 方法A:下载压缩包wget https://github.com/user/project/archive/refs/tags/v1.0.tar.gztar -zxvf v1.0.tar.gzcd project-1.0# 方法B:Git克隆(推荐)git clone https://github.com/user/project.gitcd project

(3)查看文档

# 最重要的文件ls -la# 通常有:# README.md      - 必读!# INSTALL        - 安装说明# CMakeLists.txt - CMake项目# Makefile       - Make项目# configure      - 配置脚本

(4)编译方法判断与对应编译方法

情况A:有configure脚本

./configure --prefix=/usr/localmakesudo make install

情况B:有CMakeLists.txt

mkdir build && cd buildcmake .. -DCMAKE_INSTALL_PREFIX=/usr/localmakesudo make install

情况C:只有Makefile

makesudo make install

(5)验证

# 查看版本program_name --version# 查看安装位置which program_name

P 3、常见问题

(1)文件缺失、找不到

# 安装对应的软件包sudo apt install libxxx-dev

(2)链接错误

# 确保链接了正确的库# 在CMakeLists.txt或Makefile中添加链接。这个需要能看懂,不然不要随意动 

(3)权限不足

# 使用sudosudo make install# 或安装到用户目录./configure --prefix=$HOME/.local
 End 转角  ·  遇见  ·  程序猿
————————-
那是一抹淡淡的微光

它是数字世界里的一把杀猪刀

却总能巧夺天工

它的世界是纯粹0、1组合

却总能创造无尽幻想

……

本公众号关注数据价值分析、编程学习,将不定期更新社会热点数据分析结果、编程技巧,分享数据分析工具、方法、学习等内容,欢迎有兴趣的小伙伴加入。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » C/C++源码安装全解

猜你喜欢

  • 暂无文章