<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>카ミㄚちょ</title><description>카ミㄚちょのブログ</description><link>https://kamiatyo.pages.dev/</link><language>zh_TW</language><item><title>Ubuntu 24.04構建i686交叉編譯環境</title><link>https://kamiatyo.pages.dev/%E8%A8%88%E7%AE%97%E6%A9%9F/other/ubuntu-2404%E6%A7%8B%E5%BB%BAi686%E4%BA%A4%E5%8F%89%E7%B7%A8%E8%AD%AF%E7%92%B0%E5%A2%83/</link><guid isPermaLink="true">https://kamiatyo.pages.dev/%E8%A8%88%E7%AE%97%E6%A9%9F/other/ubuntu-2404%E6%A7%8B%E5%BB%BAi686%E4%BA%A4%E5%8F%89%E7%B7%A8%E8%AD%AF%E7%92%B0%E5%A2%83/</guid><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;背景&lt;/h2&gt;
&lt;p&gt;前幾天準備寫OS時一直提示我沒有&lt;strong&gt;i686-elf-gcc&lt;/strong&gt;，使用Ubuntu自帶的apt工具下載卻無法定位該包。&lt;/p&gt;
&lt;p&gt;而寫OS這種跟底層有關的裸機編程不可以使用原生gcc，于是我便在Ubuntu的倉庫裡面亂翻，試圖翻出些有用的替代品，結果裡面一個和i686-elf-gcc有關係的都沒有。&lt;/p&gt;
&lt;p&gt;于是我只好Google了，並且通過一頓查找，搜尋到了在&lt;strong&gt;騰訊雲開發者社區&lt;/strong&gt;的一篇文章：&lt;a href=&quot;https://cloud.tencent.com/developer/article/2030533&quot;&gt;Ubuntu 18.04安装i686-elf交叉编译工具链的方法[通俗易懂]&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;這個文章雖然講的是在&lt;strong&gt;2018年4月&lt;/strong&gt;發佈的&lt;strong&gt;Ubuntu 18.04&lt;/strong&gt;的方法，但是經過我的實踐，發現這則方法在&lt;strong&gt;Ubuntu 24.04&lt;/strong&gt;也是有用的。&lt;/p&gt;
&lt;p&gt;下面則是這則方法的步驟，希望對你們有用&lt;s&gt;也是防止我以後忘了&lt;/s&gt;。&lt;/p&gt;
&lt;h2&gt;方法&lt;/h2&gt;
&lt;p&gt;其實就是手動編譯&lt;s&gt;滿浪費時間的&lt;/s&gt;，這是最經典也是最靈活的方法，可以完全控制編譯器的版本和配置。&lt;/p&gt;
&lt;h3&gt;安裝必要的依賴&lt;/h3&gt;
&lt;p&gt;先打開Terminal，更新一下包列表&lt;s&gt;幾乎所有教程必備的第一步&lt;/s&gt;並安裝編譯工具和依賴庫。執行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo wget
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;這些都是編譯&lt;strong&gt;binutils&lt;/strong&gt;和&lt;strong&gt;gcc&lt;/strong&gt;所必備的工具和庫。&lt;/p&gt;
&lt;h3&gt;下載原始碼&lt;/h3&gt;
&lt;p&gt;創建一個工作目錄（這裡我選的是&lt;code&gt;~/src&lt;/code&gt;）並下載&lt;strong&gt;binutils&lt;/strong&gt;和&lt;strong&gt;gcc&lt;/strong&gt;的原始碼。版本號根據需要選擇，此處以較新的穩定版為example：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/src
wget https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz
wget https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz
tar -xf binutils-2.42.tar.xz
tar -xf gcc-14.2.0.tar.xz
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;設定環境變數&lt;/h3&gt;
&lt;p&gt;定義目標平臺和安裝前綴，方便後繼操作：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export PREFIX=&quot;$HOME/opt/cross&quot;
export TARGET=i686-elf
export PATH=&quot;$PREFIX/bin:$PATH&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;將&lt;code&gt;$HOME/opt/cross&lt;/code&gt;設定為安裝路徑，可以保持系統整潔，也便於日後刪除或管理。&lt;/p&gt;
&lt;h3&gt;編譯安裝Binutils與GCC&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~/src
mkdir build-binutils
cd build-binutils
../binutils-2.42/configure --target=$TARGET --prefix=&quot;$PREFIX&quot; --with-sysroot --disable-nls --disable-werror
make
make install

cd ~/src
# GCC 的依赖脚本会自动下载 GMP、MPFR、MPC 等
cd gcc-14.2.0
./contrib/download_prerequisites
cd ..
mkdir build-gcc
cd build-gcc
../gcc-14.2.0/configure --target=$TARGET --prefix=&quot;$PREFIX&quot; --disable-nls --enable-languages=c,c++ --without-headers
make all-gcc
make all-target-libgcc
make install-strip-gcc
make install-strip-target-libgcc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;編譯安裝過程會花費一點&lt;s&gt;很多&lt;/s&gt;時間，請耐心等待&lt;s&gt;中間可以打會兒galgame什麼的&lt;/s&gt;。&lt;/p&gt;
&lt;h3&gt;配置環境變數（永久生效）&lt;/h3&gt;
&lt;p&gt;為了讓編譯器在任何新Terminal都可以使用，可以講下行加入到你的&lt;code&gt;~/.bashrc&lt;/code&gt;（zsh則是&lt;code&gt;/.zshrc&lt;/code&gt;）中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export PATH=&quot;$HOME/opt/cross/bin:$PATH&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之後執行&lt;code&gt;source ~/.bashrc&lt;/code&gt;（zsh則是&lt;code&gt;source /.zshrc&lt;/code&gt;）或者重啟Terminal。&lt;/p&gt;
&lt;p&gt;搞定。&lt;/p&gt;
&lt;h2&gt;結尾&lt;/h2&gt;
&lt;p&gt;其實Archlinux系的AUR倉庫是有i686-elf-gcc包的，如果實在不行也可以轉去Arch~~（Canonical震怒）~~。&lt;/p&gt;
&lt;p&gt;希望能幫到你們，這是我第一次寫技術性部落格。&lt;/p&gt;
</content:encoded></item><item><title>總結一下個人的OI生涯</title><link>https://kamiatyo.pages.dev/%E8%A8%88%E7%AE%97%E6%A9%9F/other/%E7%B8%BD%E7%B5%90%E4%B8%80%E4%B8%8B%E5%80%8B%E4%BA%BA%E7%9A%84oi%E7%94%9F%E6%B6%AF/</link><guid isPermaLink="true">https://kamiatyo.pages.dev/%E8%A8%88%E7%AE%97%E6%A9%9F/other/%E7%B8%BD%E7%B5%90%E4%B8%80%E4%B8%8B%E5%80%8B%E4%BA%BA%E7%9A%84oi%E7%94%9F%E6%B6%AF/</guid><pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;s&gt;非常想像臺灣人一樣敲正體字但是還是可能會有一點大陸口音吧&lt;/s&gt;
&lt;s&gt;這個文章我拖了兩個多月&lt;/s&gt;
&lt;s&gt;字數過少&lt;/s&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;本來想搞威妥瑪拼音的，正好GESP五級的成績出來了，查看了一下是65.5分，感覺不太好，想起之前CSP-J/S一直落榜，有感而發
原本要發推特上的，想了想還是決定發部落格上。&lt;/p&gt;
&lt;h2&gt;國小時期&lt;/h2&gt;
&lt;p&gt;我是從國小三年級開始接觸編程的，那時覺得這個東西還滿有趣的，所以就對這東西有一種愛好。一開始學的編程語言是&lt;strong&gt;Python&lt;/strong&gt;，入門時也不學算法，當時就編寫了很多小程序還有遊戲，現在大概找不到了。
我的父母當時來說比較反對我學習編程，可是我當時的確把這個當作了一種&lt;strong&gt;愛好&lt;/strong&gt;，于是他們給我報了網課，學習編程。
演算法在當時不算太熱門，所以從國小三年級到國小五年級學習的編程知識與演算法是沒有任何聯繫的。中間我也打過比賽，最讓我印象深刻的是&lt;strong&gt;藍橋盃&lt;/strong&gt;，它讓我第一次見到了演算法的威力，讓我第一次見到了「&lt;strong&gt;動態規劃&lt;/strong&gt;」這個比較神奇的一個演算法，動態規劃演算法在OI界其實是一個初學者入門必須學習的東西了，但是此時的我依然不理解這個東西到底該怎麼掌握、怎麼使用、怎麼實踐~~，以至於到現在也不太會用~~。
國小六年級就開始學&amp;lt;b&amp;gt;C++&amp;lt;/b&amp;gt;了，一開始還有在認真學，後面就亂了。
網課我也不怎麼去聽，這為我現在基礎不紮實埋伏筆了。&lt;/p&gt;
&lt;h2&gt;國中時期&lt;/h2&gt;
&lt;p&gt;國中時期開始逐漸遠離信奧賽了，國一打了一次CSP-J，沒有過，已經有點沮喪了。之後不斷地打GESP，不過是心裡安慰罷了。結果就是國二沒有接受一點訓練，CSP-J/S雙打&lt;strong&gt;全死&lt;/strong&gt;。打算12月份如果GESP的六級認證沒過的話就直接當AFO了。
滿失敗的經歷，虎頭蛇尾。&lt;/p&gt;
&lt;h2&gt;結尾&lt;/h2&gt;
&lt;p&gt;只是一段總結吧，如果當初網課認真聽一點，多刷一點題，也不至於兩次CSP兩次die。國三估計沒有什麼機會了打CSP了，雖然說我有非常認真刷一些數奧賽的題目，但也只是愛好罷了。
曾經，偶然的機會使我愛上信奧。當今，注定的錯誤使我別了信奧。&lt;/p&gt;
&lt;p&gt;不要學我。&lt;/p&gt;
</content:encoded></item><item><title>Hello World</title><link>https://kamiatyo.pages.dev/%E5%85%B6%E4%BB%96/other/hello-world/</link><guid isPermaLink="true">https://kamiatyo.pages.dev/%E5%85%B6%E4%BB%96/other/hello-world/</guid><description>Hello World</description><pubDate>Sun, 04 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Hello World&lt;/h2&gt;
&lt;p&gt;「你好世界。」這是一句對世界的問候，也是一切的開始。在程式語言裡，第一個範例通常是讓螢幕印出 Hello, World!；那像是對未知宇宙揮手，告訴它：我在這裡，我要開始了。而這個部落格，大概也是這樣的一行輸出。&lt;/p&gt;
&lt;p&gt;其實很早就想著弄一個部落格了。不是因為覺得自己有滿腹經綸，也不是因為確信有人會看，而是想找一個地方，把腦中零散的東西放下來。可惜技術不夠，時間也不夠；更現實的是，寫了文章也沒有人看，而且根本不清楚該寫什麼。每次打開編輯器，游標閃爍，像終端機正在等待輸入，我卻遲遲打不出第一行。好不容易寫完一篇，又會懷疑：這種東西真的有人想看嗎？&lt;/p&gt;
&lt;p&gt;但寫完文章後的成就感是真實的。哪怕只是幾百字，哪怕只有自己按過一次預覽，那種「我完成了一件事」的感覺，會讓平庸的一天稍微亮起來。可是下一秒又會想：這又有什麼意義呢？文章基本沒有人看，網域也買不起，說不定某一天，這個部落格就會和其他失傳媒體一樣，靜靜石沉大海。搜尋引擎不收錄，社群平台不推薦，網址只存在於自己的書籤裡，最後連自己都忘了密碼。&lt;/p&gt;
&lt;p&gt;我不是作家。我寫不出很多優秀的作品，甚至文采也不好，常常一句話改三次，最後又改回最初的版本。我只是一個普通人，在 VSCode 裡寫寫東西，在終端機裡跑跑程式碼，追隨自己喜歡的事物。現實裡，我的愛好又和身旁的人不太一樣：我玩的遊戲，身邊幾乎沒人玩；我看的影片，身邊幾乎沒人看。有時分享出去，換來的是已讀、沉默，或一句「這是什麼？」。那些小眾的快樂，很難用三言兩語講清楚，也很難找到同好。&lt;/p&gt;
&lt;p&gt;但是我不感到孤獨。不是因為身邊永遠有人陪伴，而是因為我知道自己喜歡什麼。即使在現實裡找不到共鳴，網路的某個角落總還有人也在玩同一款冷門遊戲，也在看同一支小眾影片，也在凌晨三點為了某個沒人在意的語言現象興奮不已。只要想到這件事，終端機的黑底白字就沒那麼冷，VSCode 裡的語法亮色也像某種微弱但持續的光。&lt;/p&gt;
&lt;p&gt;也許未來這裡會放一些語言學筆記，一些二次元心得，一些冷門遊戲記錄，一些沒什麼人懂、卻讓我很快樂的東西。它們不一定優秀，不一定正確，甚至不一定寫得完。但如果你也在做一件沒什麼人懂、卻讓你很快樂的事，那我們就算在網路的兩端，互相印出了一行：Hello, World。&lt;/p&gt;
&lt;p&gt;謝謝你來到這裡。&lt;/p&gt;
</content:encoded></item></channel></rss>