在ubuntu中开始你的hello world

本文介绍了 Ubuntu 系统中常用的 Linux 命令,包括目录操作、文件管理、文本编辑及编译等核心技能,适用于初学者快速掌握 Linux 基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 先安装好你的Ubuntu
  2. 熟悉常用的Linux命令

(1)pwd  显示完整目录

(2)ls   list 列举出指定目录下的内容或者是查看文件的信息

gec@ubuntu:~$ ls   默认是查看当前目录下的内容

     等价于 ls   ./

gec@ubuntu:~$ ls  /home  查看/home目录下的内容

 

ls   -a 列举出指定目录下的全部内容,包括隐藏文件(以.开头的)

ls   -l  列举出指定目录下的详细信息,包括文件的类型、文件的权限等信息

ls  -al 

 

(3)clear   清空屏幕

(4)mkdir  创建一个工作目录

gec@ubuntu:~$ mkdir  111

就有了这么一个工作目录  /home/gec/111

 

(5)cd    change directory切换目录

 在当前位置gec@ubuntu:~$ 

cd   /home/gec/111 (完整目录、绝对路径)

cd   ./111   (相对路径,当前目录的111

cd  111   (默认是当前目录的111)

 

常见错误:  No such file or directory  找不到对应的目录或者文件,

原因:  1:没有弄清楚自己的位置

2:输入文件名时候输错了

 

(6)使用【tab】键自动补齐,可以避免长命令时候错误的发生

(7)使用上键和下键对历史命令进行选择

(8)仅仅创建一个普通文件

touch  filename

 

(9) rm  删除命令  remove

rm  filename

rm  dirname  -r

 

(10) mv  文件重命名或者文件移动  move

mv   main1-c    main.c  (main1-c重命名为main.c)

mv   main1-c     /home/gece (main1-c移动到/home/gece目录下)

mv   dir1    dir2  (如果dir2是存在的,就是把dir1移动到dir2下;

如果dir2是不存在的,就把dir1重命名为dir2)

 

(11)  cp  复制命令  copy

cp   filename   new_path&name

cp   dirname1   dirname2   -r

 

(12)  man  用户手册  提供帮助

查看cp命令的帮助文档

     man  cp

 

(13)  新建文件并开始编辑或者是编辑已存在文件

vim 或者  vi 

1)进入文件后,默认是出于命令模式,

2)需要用切换到编辑模式(输入模式)

  键入 i     a     o  3个按键可以切换

         

3)开始输入代码

4)退出输入模式,返回到命令模式

    按【ESC】键返回到命令模式

    在命令模式键入 冒号+w表示保存

w   保存

w    newname  另存、

wq  保存并退出

q!   强制退出

 

 

(14)  gcc编译器

常用写法:  gcc   -o  目标文件    所有依赖的文件(.c

Linux中整个编译过程分4步完成

1) 预处理   把所有的#开头的内容都替换掉

#include   #define    #ifdef...#endif

 gec@ubuntu:~/111/0409$ gcc -E -o  target.i   main.c

gec@ubuntu:~/111/0409$

gec@ubuntu:~/111/0409$file target.i

target.i: Csource, ASCII text

 

2) 编译   检查一个文件的语法,得到汇编文件

gec@ubuntu:~/111/0409$gcc -S -o  target.s   main.c

gec@ubuntu:~/111/0409$file  target.s

target.s:assembler source, ASCII text

 

3) 汇编  检查外部调用声明和全局变量有没有问题

gec@ubuntu:~/111/0409$gcc -c  -o  target.o   main.c

gec@ubuntu:~/111/0409$

gec@ubuntu:~/111/0409$

gec@ubuntu:~/111/0409$file  target.o

target.o: ELF64-bit LSB relocatable, x86-64, version 1 (SYSV), not strip

 

4) 链接  检查是否所有的外部调用声明都有定义

 

gec@ubuntu:~/111/0409$gcc  -o  target    main.c

gec@ubuntu:~/111/0409$file  target

target: ELF 64-bitLSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter/lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,BuildID[sha1]=3db137490e899cdb30d48b1cd07826a93cae7516, not stripped

 

 

 

 

(15)  file  命令查看文件的属性

gec@ubuntu:~/111/0409$gcc -o   target  main.c

gec@ubuntu:~/111/0409$ls

main.c  target

gec@ubuntu:~/111/0409$file   main.c

main.c: C source, ASCIItext

gec@ubuntu:~/111/0409$file  target

target: ELF 64-bitLSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter/lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,BuildID[sha1]=3db137490e899cdb30d48b1cd07826a93cae7516, not stripped

 

 (16)  执行可执行文件,需要写明路径和文件, 如本地目录下的target可执行文件 ,            
        gec@ubuntu:~/111/0409$ ./target 
<think>好的,我现在需要在Ubuntu系统上设置交叉编译环境来生成一个HelloWorld程序。我之前没有接触过交叉编译,所以得先了解什么是交叉编译。交叉编译应该是在一个平台上编译生成另一个平台的可执行文件,比如在x86的Ubuntu系统上编译出ARM架构的程序,对吧? 首先,我需要安装交叉编译器。用户提到的arm-linux-gcc可能是一个常用的ARM交叉编译器。根据引用[1],Ubuntu12.04上搭建arm-linux-gcc的过程有图解,可能涉及到下载编译器并配置环境变量。不过现在Ubuntu版本可能更新了,比如22.04,可能需要不同的步骤,如引用[3]提到的在ubuntu22下构建Qt交叉编译环境,可能涉及到使用buildroot或者其他工具。 然后,安装编译器后,需要配置环境变量,把编译器的路径添加到PATH中,这样终端才能找到arm-linux-gcc命令。比如,如果编译器安装在/usr/local/arm-linux-gcc/bin,那就要在.bashrc里添加export PATH=$PATH:/usr/local/arm-linux-gcc/bin,然后source一下。 接下来是编写HelloWorld程序,就是一个简单的C程序,用printf输出。保存为hello.c。然后使用交叉编译器来编译,命令应该是arm-linux-gcc -o hello hello.c。这时候生成的hello文件应该是ARM架构的可执行文件,不能在Ubuntu上直接运行,需要用qemu-arm或者放到目标设备上运行。 但可能有依赖库的问题,比如目标平台需要特定的库,可能需要配置交叉编译器的库路径,或者静态编译。静态编译的话,可以加-static选项,这样可执行文件会包含所有依赖,方便在目标设备上运行。 另外,引用[4]提到使用Clion和CMake进行交叉编译,可能需要编写CMakeLists.txt文件,设置交叉编译工具链。不过对于简单的HelloWorld,可能直接命令行编译更简单。 可能遇到的问题包括编译器版本不兼容,比如引用[2]提到的buildroot-qt的交叉编译器与Ubuntu版本一致的问题,或者引用[3]中的错误宏定义AC_MSG_ERROR,这可能需要安装automake等工具。还有如何查看编译器支持的C++版本,可以用arm-linux-gcc -v或者--version查看。 总结步骤应该是:安装交叉编译器,配置环境变量,编写测试程序,编译并测试。如果遇到问题,检查编译器路径是否正确,依赖库是否安装,或者是否需要静态编译。</think>### 在 Ubuntu 上设置交叉编译环境生成 HelloWorld 程序的步骤 #### 1. 安装交叉编译器 根据目标平台选择对应的交叉编译器。以 ARM 架构为例,常用的编译器为 `arm-linux-gcc`。以下为安装方法: - **方法1**:手动下载并解压预编译工具链(适用于 Ubuntu 12.04~22.04)[^1][^3] ```bash # 下载工具链(示例版本为 arm-linux-gcc-4.6.4) wget https://example.com/arm-linux-gcc-4.6.4.tar.gz # 解压到 /usr/local sudo tar -zxvf arm-linux-gcc-4.6.4.tar.gz -C /usr/local # 配置环境变量 echo 'export PATH=$PATH:/usr/local/arm-linux-gcc-4.6.4/bin' >> ~/.bashrc source ~/.bashrc ``` - **方法2**:使用 `apt` 安装(部分版本支持) ```bash sudo apt install gcc-arm-linux-gnueabi # 32位 ARM sudo apt install gcc-aarch64-linux-gnu # 64位 ARM ``` #### 2. 验证编译器 检查编译器是否安装成功: ```bash arm-linux-gcc -v # 或 aarch64-linux-gnu-gcc -v ``` 输出应显示编译器版本信息[^3]。 #### 3. 编写 HelloWorld 程序 创建 `hello.c` 文件: ```c #include <stdio.h> int main() { printf("Hello, Cross-Compilation!\n"); return 0; } ``` #### 4. 交叉编译程序 使用安装的编译器生成目标平台的可执行文件: ```bash # 32位 ARM arm-linux-gnueabi-gcc -o hello hello.c -static # 静态链接避免依赖问题 # 64位 ARM aarch64-linux-gnu-gcc -o hello hello.c -static ``` #### 5. 验证可执行文件 检查文件架构: ```bash file hello ``` 输出应显示目标平台信息(如 `ARM aarch64`)。 #### 6. 部署运行 将编译后的 `hello` 文件传输到目标设备(如 ARM 开发板)并执行: ```bash ./hello ``` ### 常见问题解决 1. **编译器路径错误** 确保环境变量配置正确,并重启终端或执行 `source ~/.bashrc`[^1]。 2. **依赖库缺失** 使用 `-static` 参数静态编译,或安装目标平台的库文件(如 `libc6-armel-cross`)[^2]。 3. **版本兼容性** 若目标设备内核版本与编译器不匹配,需选择对应版本的交叉工具链[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值