[解決済み] コンパイル時の非互換ライブラリのスキップ
2022-02-14 02:43:25
質問
ローカルマシンでプロジェクトのコピーをコンパイルしようとすると、「互換性のないライブラリをスキップしています」というエラーが表示されます。 これは、職場のサーバーにホストされているライブバージョンをいじくりまわしているときには当てはまりません(そこでは完璧にできています)。
他の様々なサイトを見ると、私はUbuntuの64bitディストロで開発しており、サーバー版は32bitで動いていると思われるので、これは環境の問題ではないかと思われます。 それでも、環境変数を設定したところ、以下のようになりました。
CFLAGS+=" -m32"
CXXFLAGS+=" -m32"
のコンパイルエラーは相変わらずです。
/usr/bin/ld: skipping incompatible /dvlpmnt/libPI-Http.a when searching for -lPI-Http
チュートリアルはできますか?
== 編集 ==
Jonathanのアドバイスに従ったところ、このような出力が得られました。
http.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
どうやら、問題のライブラリは結局32ビットなんですね?
解決方法は?
このメッセージは実際にはエラーではなく、問題のファイルが正しいアーキテクチャではない(例:32ビットと64ビット、間違ったCPUアーキテクチャ)ことを警告しているだけです。リンカーは正しいタイプのライブラリーを探し続けます。
もちろん、以下のようなエラーが発生した場合は、その内容を確認してください。
can't find lPI-Http
ということで、問題ありです :-)
ビルドシステムとメイクファイルの詳細がわからないと、正確な解決策を提案するのは難しいのですが、暗闇の中の2つのショットを紹介します。
-
一応確認しておくと、通常は
フラグを
CFLAGS
よりもCTAGS
- で間違いないでしょうか? をご覧ください。(あなたが持っているものは正しいかもしれません - これはあなたのビルドシステムに依存します!) -
多くの場合、このフラグはリンカーにも渡される必要があります。
LDFLAGS
それでもだめなら、エラー出力と実際のコマンド(例.
gcc foo.c -m32 -Dxxx
など)実行されましたか?
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】デバッグアサーションに失敗しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された