gcc单文件编译
linux用gcc编译输入中文:scanf()可以;char s[100];scanf("%s", s);printf("%s", s)。
-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
特点:
它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
‘贰’ 用cc怎样把.c文件编译成.so文件
比如有一个test.c文件,我想打包成动态库test.so,
直接gcc test.c -o test.o -fPIC
gcc -o test.so test.o -shared
使用的时候发布.so和头文件即可。
链接的时候要记得丢在默认目录或者将其所在目录声明到环境变量,不然有时候会提示找不到这个库文件。
‘叁’ 怎么直接用命令提示符cl.exe编译cpp文件
单个文件:
g++ file.cpp
这是最简单形式,缺省输出为a.out,可以用-o命令指定输出文件,比如g++ file.cpp f.out
多个文件:
g++ -c 1.cpp -o 1.o
g++ -c 2.cpp -o 2.o
g++ 1.o 2.o -o prog.out
链接成可执行文件:
一般用g++ -o file file.cpp
多个文件是g++ -o file file1.cpp file2.cpp
编译C++不是用GCC而是G++.
如果用GCC能编译但不能链接.
多个文件:
1.编译多个文件,但不连接:
g++ file1.cpp file2.cpp
会生成两个文件:file1.o, file2.o
2.连接:
g++ -o outFileName file1.o file2.o
会生成一个可执行文件:outFileName。
‘肆’ CMake搭建编译环境总结
目录
前言
交叉编译环境搭建是嵌入式开发者面对的常见挑战,主要涉及在目标平台(如Arm板)上编译代码的过程。常见的编译工具包括Makefile和CMake。本文将总结CMake在搭建编译环境时的常用技巧。
入门案例:单个源文件
代码路径: 代码路径链接
工程结构
在开始使用CMake之前,需要构建工程结构,包括文件、目录和CMakeLists.txt文件。
工程编译
完成CMakeLists.txt文件编写后,执行cmake命令(指定路径),然后使用make命令编译。
多个源文件
代码路径: 代码路径链接
工程结构
当工程包含多个文件和目录时,使用一个CMakeLists.txt文件可能难以维护。因此,建议按照模块结构,为每个主要模块创建单独的CMakeLists.txt文件,将文件和目录按层次嵌套管理。
优点
顶层CMakeLists.txt负责设置工程属性、交叉工具和包含子路径的CMakeLists.txt文件。子路径下的CMakeLists.txt主要关注编译文件的路径、目标生成路径和编译目标。
配置示例
配置顶层CMakeLists.txt时,应包含工程属性、交叉工具设置和包含子路径的CMakeLists文件。子路径下的CMakeLists.txt应关注头文件路径、目标生成路径和编译目标。
其他用法
配置局部变量、设置全局变量、获取全局变量、指定目标输出路径、设置环境变量等。
环境设置和编译器配置
设置环境变量、编译器路径、依赖库路径、头文件路径、编译器编译选项、CMakeLists路径嵌套等。
编译警告和报错设置
使用GCC设置编译警告和报错选项,例如打开所有警告并将其视为错误。
交叉编译环境设置
配置默认库、头文件搜索路径、交叉编译工具链、浮点运算处理方式、动态库编译、静态库编译和可执行文件编译。