タグ

2024年2月7日のブックマーク (13件)

  • Compiler Explorer

    Add new...Clone CompilerExecutor From ThisOpt RemarksStack UsagePreprocessorASTLLVM IROpt PipelineDeviceRust MIRRust HIRRust Macro ExpansionGHC CoreGHC STGGHC CmmGCC Tree/RTLGNAT Debug TreeGNAT Debug Expanded CodeControl Flow Graph

    Compiler Explorer
  • アセンブラに手を出してみる - Qiita

    がっつりとやるつもりはありませんが、もしかしたら読む必要が出るかもしれないので少しだけお勉強。 もともと仕組みを知ることが好きなので読み始めると結構面白いです。 (ほんとはarmのほうが知識としては必要なんだけど、それはまた後日調べる) はじめに 今回まとめているのはx86とx86_64アーキテクチャに関するものです。 armなどはまた異なったものとなります。 また、構文もいくつかあるようで、それぞれ AT&T構文、 Intel構文というようです。 構文の違い %raxなどのように、レジスタに%がついていたりするのはAT&T構文です。 ついていないものはIntel構文です。 また、セクションの定義など細かいところで色々と差異があるようです。 ソース・ディスティネーション 上記構文の中で特に覚えておかないと混乱するのがこの「ソース」と「ディスティネーション」の順番です。 例えば、raxレジス

    アセンブラに手を出してみる - Qiita
  • fbc/src/gfxlib2/x86/gfx_put_trans_mmx.s at master · freebasic/fbc

  • ProPgDataExecutable

    コンパイル時に、バイナリデータを実行可能ファイルに埋め込み、プログラムコードから利用する方法。 (caseih と coderJeff のフォーラム投稿に基づく) この記事では、コンパイルされたプログラムにバイナリデータを含める方法と、これらにアクセスする方法について説明します。 原理 (G)LDリンカー(FreeBASIC 配付に含まれています)は、ファイル内のバイナリデータをオブジェクトファイルに変換することで処理できます。 このオブジェクトファイルは、データを読み取るためにプログラムコードからアクセスできるシンボルをエクスポートします。 リンカは、提供されたファイル名に基づいて2バイトのシンボルを作成します:

  • 3D Demo's - freebasic.net

  • FreeBasic's Timer - Page 17 - freebasic.net

  • 静的ライブラリと動的ライブラリを作る

    gccで静的ライブラリと動的ライブラリを作ってみました。静的ライブラリは前回のポストにも載せましたが、対比が分かりやすいように再掲します。 静的ライブラリは、libxxx.aというファイルです。拡張子のaはarchiveの略です。 以下では、加減乗除を行う関数が定義されたadd.o、sub.o、mul.o、div.oをarchiveしてlibhoge.aというファイルを作成します。 kenjih$ gcc -c add.c kenjih$ gcc -c sub.c kenjih$ gcc -c mul.c kenjih$ gcc -c div.c kenjih$ ar -q -v libhoge.a *.o のようにして静的ライブラリを作成します。 main.cからlibhoge.aの機能を使用する場合は、以下のようにコンパイルします。 kenjih$ gcc -o main main.c

  • Cの静的ライブラリ、共有ライブラリの作成手順メモ

    静的ライブラリと共有ライブラリの作り方の手順を残す。 まず、言葉の定義として、 静的ライブラリは、スタティックライブラリ(static library)と同義である。英語訳しただけだ。 共有ライブラリは、動的(ダイナミック)ライブラリ(dynamic library)とほぼ同じだが同義ではない。 共有ライブラリは動的にロードされるのだが、下の2つの場合がある。 1. ビルド時に読み込むライブラリ内オブジェクトをリンクし、実行時にそれを動的に読み込む場合 2. 実行時に初めて読み込むライブラリが決まり、実行時にリンクしてそれを動的に読み込む場合 前者のことを指す場合は、動的ライブラリ、 後者の場合は、動的リンク、 という言葉を用いることにする。 もう一点。動的にリンクされた実行ファイルと共有ライブラリをstatifierを使って 静的にまとめる場合などもあるかもしれないが、そういった場合はど

  • C言語で静的・動的ライブラリを作成・使用する方法 - Qiita

    目的 Linuxで.a(静的)と.so(動的)の2種類ライブラリを作成できるが、コンパイルする時に同じような方法で使用される。 即ち、異なるライブラリのlibA.aとlibA.soが存在しても、コンパイルのコマンドではライブラリの拡張子が省略され、gcc xxx -lAのようになるため、どっちが使用されるかは曖昧になる。 libA.aとlibA.soが共存する場合の動作確認をしたく、メモする。 先に結論 gcc -o main main.c -L. -lA のように、ライブラリlibA(-lAで指定)が指定されている場合、libA.so(動的)はlibA.a(静的)より優先的にリンクされる。 追記 gcc -o main main.c -L. -static -lA のように、「-static」を指定すれば、libA.a(静的)はリンクされる。 追記2 gcc -o main main.c

    C言語で静的・動的ライブラリを作成・使用する方法 - Qiita
  • TutUsingLibrariesWithGCC

    FreeBASIC で、静的ライブラリを生成する方法を示します。次に、コンパイラとして GCC を使って、C プログラムからそれを呼ぶ方法を示します。 注:GCC:GNU Compiler Collection。GNUプロジェクトによるフリーなコンパイラ。 この記事は、Windows を使うことで通しています。しかし、他のプラットホームの上の FreeBASIC への適用も、同様です。 このチュートリアルで: 簡単なテスト この簡単なテストのために、FreeBASIC の静的ライブラリを生成します。これは、何も依存関係はありません。 これで、より簡単に始められるようになります。そして、基が働いていることをチェックできます。 まず最初にライブラリが必要です。これは、ただ一つの些細な関数で、2つの整数を合計して、結果を返すだけのものです。 手続きの定義で、cdecl と Alias を使うこ

  • Using FreeBASIC Built Libraries with GCC - FreeBASIC Wiki Manual | FBWiki

  • ProPgAntiFlickering

    描画モードの更新 のための アンチ・フリッカー コーディング方法(画面やビューポートをクリアした後)。 序文: 描画モードでウィンドウを更新(予防なしで再描画)すると、迷惑なちらつきが発生する可能性があります (これは、ユーザーの更新フェーズで取得した、不要な中間画像が表示されるためです)。 この現象は、完全に更新される前に、ウィンドウ全体が最初に消去された場合に明らかに激しくなり、これが繰り返し行われます。 このページでは、この現象に対応するための、基的な FreeBASIC コーディング技術を紹介します。

  • ProPgDataExecutable

    コンパイル時に、バイナリデータを実行可能ファイルに埋め込み、プログラムコードから利用する方法。 (caseih と coderJeff のフォーラム投稿に基づく) この記事では、コンパイルされたプログラムにバイナリデータを含める方法と、これらにアクセスする方法について説明します。 原理 (G)LDリンカー(FreeBASIC 配付に含まれています)は、ファイル内のバイナリデータをオブジェクトファイルに変換することで処理できます。 このオブジェクトファイルは、データを読み取るためにプログラムコードからアクセスできるシンボルをエクスポートします。 リンカは、提供されたファイル名に基づいて2バイトのシンボルを作成します: