console.log("運行自定義腳本"); 安裝工具 我的機器環境是: ,開始之前,得在機器上面安裝一些工具: [x] gcc [x] binutils (readelf,objdump) 因為我在自己的機器上面安裝了 brew 這個包管理工具,以及 這個 Shell ,所以我就通過 就安裝好了 ...
安裝工具
我的機器環境是:macOS Mojave 10.14.4 18E226 x86_64
,開始之前,得在機器上面安裝一些工具:
- gcc
- binutils (readelf,objdump)
因為我在自己的機器上面安裝了 brew這個包管理工具,以及zsh
這個 Shell,所以我就通過brew install gcc binutils
就安裝好了gcc
、objdump
和readelf
這3個命令,值得註意的是,由於macOS上面也提供了和binutils
相同功能的工具,我們就需要手動將這兩個命令的路徑添加到環境變數裡面:
echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.zshrc #使用bash的話,就添加到.bashrc裡面
exec $SHELL #刷新下環境變數
如果需要讓編譯器找到這些命令,還需要額外添加:
export LDFLAGS="-L/usr/local/opt/binutils/lib"
export CPPFLAGS="-I/usr/local/opt/binutils/include"
因為macOS並沒有使用elf
作為可執行文件的格式,所以我得在linux下麵編譯文件,以前學jsp的使用寫了個fedora
的鏡像構建腳本,打開了ssh,這樣編譯好的文件就可以通過scp
來傳輸到宿主機器。不過為了方便我還是掛載了一個目錄到fedora。
docker pull ourfor/tomcat
docker run --privileged --name asm -d \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v $PWD:/root:rw \
-h docker.server -p 4040:8080 -p 2020:22 \
-p 9906:3306 \
-t ourfor/tomcat
創建一個名為asm
的容器,同時將當前目錄掛載到/root
目錄
fedora上面的包管理工具有yum
和dnf
,為了方便,我還是安裝下gcc
和binutils
以及vim
dnf install gcc binutils vim -y
在fedora裡面編譯好,再打開一個Terminal,到掛載的共用目錄就可以查看編譯好的文件
這個結果和fedora裡面用readelf
看到的結果是一樣的:
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x401020
Start of program headers: 64 (bytes into file)
Start of section headers: 16360 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 11
Size of section headers: 64 (bytes)
Number of section headers: 28
Section header string table index: 27
要用到的工具我們都安裝完了。
更多相關文章
-
自己製作一個簡單的操作系統二[CherryOS] 我的上一篇博客 自己製作一個簡單的操作系統一[環境搭建], 詳細介紹了製作所需的前期準備工作 一. 一點說明 這個操作系統只是第一步, 僅僅是開機顯示一個hello cherryos, 不夠萬物開頭都是 hello xxxx 不是嗎?(┗( ´・∧・ ...
-
1.開啟虛擬機以及git bash視窗,準備連接 2.在虛擬機中輸入ifconfig -a查看虛擬機ip 從圖中找到ip為 : inet 地址:192.168.78.133 3.輸入命令: ssh [email protected] -p 22連接虛擬機 此時我的電腦有報錯:ssh: conne ...
-
開學STM32 跑馬燈的實驗主要就是瞭解GPIO口的配置及使用,我這裡是使用庫函數進行編程,主要需要設置以下兩方面: 1、使能需要使用的IO口的時鐘,一共有A、B、C、D、E、F、G七組IO口 2、初始化IO口(設置IO口的埠號(有GPIO_Pin_0 ~ GPIO_Pin_15,共16個IO埠 ...
-
飛思卡爾(現恩智浦)自2017年推出i.MXRT系列MCU以來,至今已發佈數款新品(RT1050、RT1020、RT1060...),每一款晶元都配套了EVK板,下圖是截止目前所有EVK的板載資源的對比,今天痞子衡就選擇其中資源最豐富的MIMXRT1060-EVK來具體聊一聊。 ...
-
一、 鏡像下載 國內源下載鏡像:(推薦) http://mirrors.aliyun.com/centos/8.0.1905/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso 國外源下載鏡像:(不建議) http://mirror.qoxy.com/centos/8 ...
-
在Windows中,系統進程,資源管理都是通過可視化操作實現的,如下為Windows經典的可視化系統資源管理,其中,作為開發人員或伺服器運維人員, 查看系統系統,系統進程,系統性能和系統伺服器是三個重要的參考因素。 然而,在linux系統中,如何實現這些操作呢?本篇文章將從操作的角度,簡要分析liu ...
-
總結於 "《鳥哥的 Linux 私房菜 基礎學習篇》" ,圖片也來自於此。 <! 可在「閱讀原文」中查看其他核心筆記:如 Git 等 核心思想 目錄樹結構(directory tree) Linux 系統是基於目錄樹結構的,這是它的核心思想 。目錄,即文件夾。Linux 系統相當於一個文件夾,Lin ...
-
最近遇到一個問題,由於兩台伺服器時間的問題,經常導致用戶登錄由於時間差問題而報錯,再三百度,最後整理了一下修改linux定時同步的操作(本方法適用於有自己時間伺服器,沒有的只限於借鑒) 首先確認,我們的服務是否已經安裝了ntp服務 如果沒有安裝,需要先安裝ntp服務 安裝完ntp之後,編輯ntp.c ...