タグ

gccに関するryochackのブックマーク (6)

  • GCCでLPC1343用のバイナリをビルドする - ELECTLOGIC

    結構前に買ってずっと放置されていたlpcxpresso nxp 1343をそろそろ使ってみる。OSを何度も変更する自分にとってはlpcxpressoIDEのプロダクトコードの入力とかめんどくさいので、GCCでlpc1343のバイナリを作成します。 ビルドした環境 ubuntu11.10 Sourcery G++ Lite 4.5.2 Sourcery G++ Liteは適当にインストールしてpathを通しておく。 Lチカサンプルコードと必要なファイルの入手 http://ics.nxp.com/support/lpcxpresso/からLPC1300 Seriesの下のリンクからExample Projectsをダウンロード 適当なフォルダ(ここではblink)を作って、examples.lpc13xx.zipからLチカに必要な以下のファイルをコピー CMSISv1p30_LPC13xx/

    GCCでLPC1343用のバイナリをビルドする - ELECTLOGIC
  • KMC Staff Blog:gccの便利なオプション (オンラインヘルプ)

    2009年09月18日 gccの便利なオプション (オンラインヘルプ) 私がよく使うgccの便利なオプションをまたひとつ紹介します。 gccのコマンドラインオプションをちょっと調べたいときには、gcc自身のhelpが便利です。 まずは簡単に --help オプション $ arm-kmc-eabi-gcc --help これはgccに関するオプションの説明が簡単に表示されます。 gccから起動されるアセンブラやリンカのオプションを知りたいときには、-v と --help をつけます。 $ arm-kmc-eabi-gcc -v --help GCCのマニュアルはhttp://gcc.gnu.org/onlinedocs/にありますが、そこには載っていないものも、これで調べるとわかることがあります。 (片言の説明ですが、オプションの存在がわかりさえすれば、後はソースを追いかけて調べます ...

    ryochack
    ryochack 2017/01/14
    “arm-kmc-eabi-gcc --target-help”で-mcpu=などのオプションの指定値を表示できる
  • KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法

    2010年04月26日 GCCでリンク時に不要なコードとデータを削除する方法 これもまた、ELC(Embedded Linux Conference)でのセッションの紹介です。 ELCのスライドのページのDenys Vlasenkoさんの"Link time dead code and data elimination using GNU toolchain"を見てください。 組み込みシステムではやはりコードやデータのサイズの削減が必要になる場面がしばしばあります。これを毎回手作業でやるのではscaleしません。このセッションではGNU Tool chainでこれを行う方法を紹介しています。 必要なバージョンはgcc 4.x 以上、binutils 2.18以上。 gcc 4.5から入ったlto(link time optimization)はこのセッションの話とは別です。 通常はリンクす

    ryochack
    ryochack 2016/06/04
    どこからも参照されていないセクションを削除する
  • Google Test と Travice CI で、C言語で書いたライブラリの継続的インテグレーションをしてみた結果 - Kikuchy's Second Memory

    結果 たのしい! 出来上がったものはこちら。 kikuchy/SmallSet · GitHub 以下、行ったことです。 C言語で Google Test を使う Google Test はC++で書かれている単体テストライブラリです。 C++で書かれている、ということで、気合いを入れればC言語でも使えます。 とは言っても、入れる気合いは extern "C" { #include ( C のヘッダファイル) } これだけでした。 後はマニュアル通りにGoogle Testを使った単体テストを書きます。 テストコード書いて、 ダミー実装して、 レッド出して、 ちゃんと実装して、 グリーンにする。 全部の関数が出来上がらなくてもテストは走るので、必要な関数が全部出来上がるまでテストできない! なんてフラストレーションを抱える必要もありません。 楽しい。 Travis CI で Google

    Google Test と Travice CI で、C言語で書いたライブラリの継続的インテグレーションをしてみた結果 - Kikuchy's Second Memory
    ryochack
    ryochack 2015/11/11
    -lxxxのライブラリの指定をオブジェクトファイルよりも後ろに持っていかないと、"undefined reference"エラーが出る
  • gccのアセンブル出力を解析する時は-gオプションが便利

    アセンブラの勉強のために、gccで-Sオプションを使用してC言語のコードからアセンブラのコードを出力していたのですが、ソースコード中の何行目がどの出力に対応するのか分かり辛く、苦労していました。 もちろん注意深く読めば対応は分かるのですが、質的でないところに時間が取られてしまい、来の解析が出来なくなってしまうので非効率です。 と思ってたのですが、コンパイル時に-gオプションをつけ、デバッグ情報を付与させると、ソースとアセンブリの対応が出力される事に最近気づきました。 以下、試してみた結果です。 こちらがテストに使ったコード #include<stdio.h> int main() { int a; int b; int c; a = 2; b = 5; c = a + b; printf( "%d\n", c ); } .file "test10.c" .section .rodata

    gccのアセンブル出力を解析する時は-gオプションが便利
  • 『今時のgcc に驚いた。kernel/VM advent cal. 2012/ DEC/07』

    今時のgcc に驚いた。kernel/VM advent cal. 2012/ DEC/07 | たけおか ぼちぼち日記 kernelVM advent calendar 2012/ DEC/07 今時のgcc に驚いた話。 (kernelともVMとも関係なくて、スマソ) -- a.c main() { foo(); } foo() { printf("FOO"); bar(); } bar() { printf("BAR"); foo(); } -- というソースを書く。 foo()とbar()は、お互いに呼びあい無限ループを描く。 % cc -S -O0 a.c で、出たオブジェクトは -- a.s -O0 (略) main: .LFB0: (略) movl $0, %eax call foo (略) ret .cfi_endproc .LFE0: (略) .LC0: .string

    『今時のgcc に驚いた。kernel/VM advent cal. 2012/ DEC/07』
  • 1