ld

    0

    1答えて

    私はOS X 10.12を実行しており、基本的なテキストベースのオペレーティングシステムを開発しています。私はブートローダを開発しており、うまく動作しているようです。私の唯一の問題は、カーネルを純粋なバイナリにコンパイルしようとすると、リンカが動作しなくなることです。私はいくつかの調査をしましたが、これはOS XがGNUリンカーではなくDarwinリンカーを実行していることが原因であると考えていま

    1

    1答えて

    これらの2つのソースファイルを変更せずに、コンパイルによって生成されたオブジェクトファイルを取得して、link.cをmain_v1.cのfooにリンクさせてbar.cのbarにリンクさせる方法がありますか?オブジェクトの変更 main_v1.c void foo(void); int main(void) { foo(); } bar.cに #include <stdio.h

    1

    1答えて

    実行ファイルをldにリンクすると、実行可能ファイルが依存するライブラリのリストが表示されます。これはこれらのライブラリの位置情報の唯一のソースですか、またはオブジェクトファイルにメタデータとして保存されている依存ライブラリの優先バージョンに関する情報ですか? 特定の問題はこれです:私は両方とも第三ライブラリlCに依存2つの依存ライブラリlAとlBを、リンク、およびIは、リンク行にこれらのライブラリ

    2

    1答えて

    32ビット科学Linuxでclang 3.9をコンパイルしようとしています。 コンパイル処理は次のエラーで93%で失敗: [ 93%] Linking CXX executable ../../bin/clang /lib/ld-linux.so.2: could not read symbols: Memory exhausted collect2: error: ld returned 1

    2

    1答えて

    警告を未定義の参照を引き起こし私が直接ビルドした場合に動作する実験的ファイルシステムですが、makefileをリンカエラーで使用すると失敗します。 g++ \ -std=c++11 -std=c++1y -fopenmp -DNDEBUG \ -O3 -fprofile-generate -march=native -fomit-frame-pointer \ docproc.cpp \

    0

    1答えて

    オブジェクトファイルを検査するときなど。 /usr/lib32または/usr/libとreadelf -r <object file>のいずれかの場合、32ビットのバリアントには64ビットのものには加数フィールドがありません。私は非32ビットシステム用のアドレスレイアウトを修正することだと思います。 x86_64またはアーム。それが正しいか?

    3

    1答えて

    から.relocを使用すると、これは私がAArch64に直面してる問題のカットダウン版です:私はセクションに、いくつかのデータをダンプし続けるこのマクロをしました 。 #define GEN_DATA(_type) \ .pushsection .mydata_##_type, "aw"; \ .ifndef start; \ start:; \ .en

    0

    1答えて

    をリンクLD私はimx6qのため(のCortex-A9)のコードをリンクするリンカスクリプトを持っている間は: OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(Reset_Handler) /* SEARCH_DIR(.) */ GROUP(libgcc.a

    5

    3答えて

    SSEやAVXなどのプラットフォーム固有の機能を利用できるかどうかは、実行時に決定できます。さまざまな機能をコンパイルして出荷する必要がない場合は非常に便利です。 例えば次のコードは、私がAVXを確認することを可能にし、gccでコンパイルし、cpuid.hヘッダを提供する: #include "stdbool.h" #include "cpuid.h" bool has_avx(void)

    0

    1答えて

    ldは奇妙な動作をしており、何が起こっているのか理解したいと思います。 #include <algorithm> #include "mycode.hpp" // awesome stuff here 私はg++ -fPIC -c mycode.cppでそれをコンパイルし、ld -Bshareable -o libmylib.so mycode.oとリンク:mycode.cppで、私は次