Linux下的C/C++工程样例框架解析与应用

需积分: 5 2 下载量 54 浏览量 更新于2024-11-14 2 收藏 104KB ZIP 举报
资源摘要信息:"linux工程样例框架-C/C++-makefile框架-CMakefile框架" 本资源提供了一个实际的工程样例框架,旨在帮助开发者在Linux环境下使用C或C++语言进行项目开发。该框架提供了初始化的makefile和CMakeLists.txt文件,这是两个在开源项目中广泛应用的构建工具的配置示例。开发者可以在这些框架的基础上根据自己的项目需求进行修改和扩展,以便快速搭建起项目的构建和编译环境。 知识点一:makefile基础 makefile是一个包含了一系列的规则来告诉make程序如何编译和链接程序的文件。makefile中包含了一些重要的概念,如规则(rules)、目标(targets)、依赖(dependencies)和命令(commands)。 - 规则:告诉make如何构建特定的目标,它声明了一个或多个目标文件依赖于其他一些文件(源文件或头文件)。 - 目标:通常是编译出的文件名,也可以是执行make时需要完成的任务。 - 依赖:目标文件需要的源文件和头文件等。 - 命令:用于创建目标的shell命令。 开发者需要了解如何使用makefile来指定编译器和链接器的选项,以及如何组织源代码和头文件。 知识点二:CMake基础 CMake是一个跨平台的自动化构建系统,使用CMakeLists.txt文件来配置和生成本地的makefile或其他构建系统文件。CMake使用较为简单明了的语法,支持多种IDE和编译器,是目前最流行的构建系统之一。 - CMakeLists.txt文件:包含项目的构建指令,是CMake的核心。 - CMake变量:用于存储路径、编译选项等信息。 - CMake命令:如add_executable()用于添加可执行文件,add_library()用于添加库文件。 - CMake模块:提供了额外的功能,比如搜索系统库、设置安装路径等。 开发者需要掌握基本的CMake语法和命令来创建自己的CMake项目。 知识点三:Linux C/C++开发环境设置 Linux环境下的C/C++开发通常涉及到编辑器的配置(如vim、Emacs或IDEs如Eclipse、Visual Studio Code)、编译器(如gcc、clang)和调试工具(如gdb)的安装和使用。此外,还可能需要熟悉版本控制系统(如Git)的使用,以便管理代码的版本。 - gcc和g++:Linux下的标准C/C++编译器。 - glibc:Linux下的标准C库。 - 编辑器或IDE:用于编写和管理源代码。 - Git:用于版本控制和代码管理。 知识点四:构建系统的使用 在有了初始化的makefile或CMakeLists.txt文件后,开发者需要使用相应的工具来执行构建过程。 - 使用make命令:通过指定makefile文件来构建项目。 - 使用cmake命令:首先运行cmake生成makefile,然后使用make进行构建。 - 使用make install命令:如果需要,安装编译好的程序到系统目录。 以上这些知识点是构建高效、可靠的C/C++项目的基础,对于希望提高Linux项目构建效率的开发者来说,理解和熟练掌握这些知识点是非常重要的。资源中提到的框架将为开发者提供一个良好的起点,通过在这个框架上进行扩展和自定义,开发者可以更加专注于项目的开发,而无需从零开始搭建构建系统。此外,资源的提供者还计划持续更新这些框架,以便使框架更加完善和贴合实际开发需求。

CMake Error at /home/sniper/anaconda3/envs/yolov8/lib/python3.8/site-packages/cmake/data/share/cmake-3.25/Modules/CMakeTestCCompiler.cmake:70 (message): The C compiler "/usr/bin/gcc" is not able to compile a simple test program. It fails with the following output: Change Dir: /opt/projects/tensorrt-alpha/yolov8/build/CMakeFiles/CMakeScratch/TryCompile-TrXrKM Run Build Command(s):/usr/bin/make -f Makefile cmTC_7d457/fast && /usr/bin/make -f CMakeFiles/cmTC_7d457.dir/build.make CMakeFiles/cmTC_7d457.dir/build make[1]: 进入目录“/opt/projects/tensorrt-alpha/yolov8/build/CMakeFiles/CMakeScratch/TryCompile-TrXrKM” Building C object CMakeFiles/cmTC_7d457.dir/testCCompiler.c.o /usr/bin/gcc --sysroot=/usr/ -march=x86-64 -o CMakeFiles/cmTC_7d457.dir/testCCompiler.c.o -c /opt/projects/tensorrt-alpha/yolov8/build/CMakeFiles/CMakeScratch/TryCompile-TrXrKM/testCCompiler.c Linking C executable cmTC_7d457 /home/sniper/anaconda3/envs/yolov8/lib/python3.8/site-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7d457.dir/link.txt --verbose=1 /usr/bin/gcc --sysroot=/usr/ -march=x86-64 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/home/sniper/anaconda3/lib -Wl,-rpath-link,/home/sniper/anaconda3/lib -L/home/sniper/anaconda3/lib CMakeFiles/cmTC_7d457.dir/testCCompiler.c.o -o cmTC_7d457 /usr/bin/ld: 找不到 /lib/x86_64-linux-gnu/libc.so.6 于 /usr/ 内部 /usr/bin/ld: 找不到 /usr/lib/x86_64-linux-gnu/libc_nonshared.a 于 /usr/ 内部 /usr/bin/ld: 找不到 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 于 /usr/ 内部 collect2: error: ld returned 1 exit status make[1]: *** [CMakeFiles/cmTC_7d457.dir/build.make:99:cmTC_7d457] 错误 1 make[1]: 离开目录“/opt/projects/tensorrt-alpha/yolov8/build/CMakeFiles/CMakeScratch/TryCompile-TrXrKM” make: *** [Makefile:127:cmTC_7d457/fast] 错误 2 CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:25 (PROJECT) -- Configuring incomplete, errors occurred!

2023-06-02 上传
2023-07-15 上传