問題タブ [fpic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2833 参照

makefile - ROOT インストール エラー: -fPIC で再コンパイル

私は今、から入手可能なROOTパッケージをインストールしようとしています

./configure, make; 以下のようなエラーが発生しました。

私はこの問題について本当にたくさん読んだ。64 ビット マシンで 32 ビット ソフトウェアを実行していることが原因のようで、-fPIC で再構成する必要があります。だから走ってみた

CFLAGS="-O3 -fPIC" ./configure

またはmakefile Add inside を介して gcc フラグを渡すに従って。bashrc、 私は追加します:

ただし、どれも機能しません。

これは本当に私を夢中にさせます....私のケースと他のケースの違いだけがここにあります私はPython2.6に問題がありますが、他のライブラリには問題があります...

誰でも私を助けることができますか....

0 投票する
3 に答える
3697 参照

c++ - ブーストテストfpicリンクエラー

私はこれをじっと見つめていますが、自分が何をしたのかわかりません。

32ビットマシンで作業中のプロジェクトがあります。リポジトリを64ビットマシン(プロジェクトの元の開発マシン)にプルしましたが、テストバイナリをビルドしようとすると、次のリンクエラーが発生します。

何が変わったのか本当にわかりません。Boostライブラリはubuntuリポジトリから直接取得されます。手がかりを持っている人。

0 投票する
2 に答える
2506 参照

gcc - libstdc++ を静的にリンクして共有ライブラリを作成すると失敗する

64 ビット x86 マシンで gcc 4.5.1 を使用して、最初に次のように ao を作成します: g++ -fPIC -c a.cc -o ao

次に、次のように liba.so を作成してみてください: g++ -static-libstdc++ -shared -W1,-soname,liba.so -o liba.so.1.0.0 ao

次の情報で失敗しました: 再配置 R_X86_64_32S に対する `vtable for __gnu_cxx::stdio_filebuf >' は、共有オブジェクトを作成するときに使用できません。-fPIC で再コンパイル

-fPIC を追加して libstdc++ ライブラリを再コンパイルしようとしましたが、とにかく失敗しました

0 投票する
1 に答える
303 参照

c++ - 位置に依存しないコードを使用した値渡しおよびポインター渡し

私は、特に gcc with を使用して、位置に依存しないコードで行ういくつかのことを理解しようとしてい-fpicます。

私は、スタック上でポインタを何度も渡すのにかかる時間を測定し、コピーを渡すことで同じことを行う関数を作成しました。私の例では、継承や仮想関数のない構造体または単純なクラスでのみ効果が見られます。

PIC を使用すると、ポインターが (少し) 遅くなるのはなぜですか? また、PIC を使用しない場合と比較して、コピーがはるかに高速になるのはなぜですか?

-03もコンパイルしています。

0 投票する
1 に答える
432 参照

assembly - スクラッチせずにすべてのレジスタを保存する

別のプログラムをブートストラップするプログラムを開発しているため、プログラムに渡されるレジスタを保存して、ロードされているはずのプログラムにジャンプする前にそれらを復元できるようにする必要があります。これはベア メタル システムであり、OS も MMU もありません (存在しますが、現時点では使用されていません)。

これが私のコードです。テストするアームボードがなく、すぐに提出する必要があるため、コードが正しいかどうかを知りたいだけです。

また、PC 相対ストアがソース レジスタの下位レジスタ (r0-r7) のみを使用できることも事実です。これは、命令幅が限られているために、特定の命令で上位レジスタにアクセスできないという単なる親指の問題だと思いました。

0 投票する
1 に答える
1343 参照

gcc - Code::Blocksで--enable-sharedまたは-fPICのいずれかを適用します

質問が述べているように、私はそれらのコンパイラ/リンカー設定のいずれかを適用する必要があります。私はCode::Blocks10.05を使用しています。すべてのビルド設定画面を確認しました。これらの設定を適用する場所が見つかりません。出力で次のようになります。

0 投票する
1 に答える
109 参照

g++ - g++ で共有可能な .o ファイルをコンパイルできない

次のコマンドでコンパイルすると:

g++ -fPIC -o obj/buffer.o buffer.cpp

次のエラーが表示されます。

/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: 関数_start': (.text+0x20): undefined reference to内 main'

-fPIC フラグを使用していると思われますが、メイン関数は必要ありませんでした。すべての cpp ファイルでこのエラーが発生します。共有ライブラリ関数を含む main.cpp があります。ソースコードは次の場所で入手できます。

git クローンhttps://github.com/nterry/39DLL-4-Linux.git

何か案は?ld バイナリを使用してすべての o ファイルを an に配置できることを知っているので、それらが完了したら、それらすべてを共有可能な .o ファイルに構築するための助けが必要です。

0 投票する
1 に答える
497 参照

linker - スタティック ライブラリの fPIC コード: なぜですか? 何が起こるのですか?

位置独立コードをスタティック ライブラリに配置するとどうなりますか? (特に、x86-64 では)

つまり、いくつかの.oファイルが PIC で生成され、.aファイルに配置されます。これ.aは、通常どおり最終的な実行可能ファイルに静的にリンクされます。

動作しているように見えますが、これを行う意味はありますか? なんで?

最終的なアドレス計算は何をしますか? (リンク時? 実行時?)

ありがとうございました

0 投票する
1 に答える
2935 参照

static - 静的ライブラリにリンクされた共有ライブラリ:再配置エラー

移植性の理由から、gfortranを使用して共有ライブラリを作成し、静的バージョンのlibgfortranとリンクさせたいと思います。残念ながら、私はさまざまなオブジェクトを適切にリンクすることができません。同様の問題に対処する投稿をすでにいくつか見つけましたが、問題を解決する方法がわかりませんでした。

私のソースファイルはすべて-fPICフラグを付けてコンパイルされています。-sharedオブジェクトをフラグとにリンクしようとすると-static-libgfortran、次のエラーメッセージが表示されます。

サーバー上で最初からコンパイルしたgfortran4.6.3を使用しています。インストールはスムーズに実行され、標準構成は変更しませんでした。古い投稿で、コンパイラをで構成する必要があることがわかりました--with-picが、このフラグはGCCマニュアルに記載されていません。

問題はコンパイラーに起因するのでしょうか、それとも異なるオブジェクトをリンクしようとしている方法に起因するのでしょうか?どうすればこれを修正できますか?

よろしくお願いします!

0 投票する
1 に答える
697 参照

c++ - `-fpic` が有効な場合、g++ がこのコンストラクター関連の noexcept 警告を発行しないのはなぜですか?

次のコードがあります:

次のオプションを使用すると、
-fno-pic -fmessage-length=0 -std=c++0x -Wnoexcept
g++ は次の警告をスロー します。

しかし、-fpic代わりに使用すると-fno-pic g++警告がスローされないのはなぜですか?

編集:
GCC バージョン - 4.7.2