[解決済み] 未定義の参照 'shm_open'、ここに -lrt フラグを追加済み。
2022-02-02 03:37:42
質問
システムがクラッシュし、Ubuntu 11.10を再インストールしたところ、私のコードでこの奇妙なエラーが発生しました。
どこに問題があるのかをテストするために、簡単なコードサンプルを書きました。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
int main (void) {
int i;
i = shm_open ("/tmp/shared", O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); printf ("shm_open rc = %d\n", i);
shm_unlink ("/tmp/shared");
return (0);
}
で、コンパイルコマンドは
gcc -lrt test.c -o test
というエラーが発生します。
/tmp/ccxVIUiP.o: In function `main':
test.c:(.text+0x21): undefined reference to `shm_open'
test.c:(.text+0x46): undefined reference to `shm_unlink'
collect2: ld returned 1 exit status
すでに -lrt lib を追加していますが、なぜまだコンパイルできないのですか?
解決方法を教えてください。
最後にライブラリ。
gcc test.c -o test -lrt
から GCCリンクオプション :
-llibrary -l ライブラリ リンク時にlibraryという名前のライブラリを検索する。 (ライブラリを別の引数として指定する2つ目の方法は はPOSIX準拠のためだけのものであり、推奨されません)。 このオプションは、コマンドのどこに記述するかで違いがあります。 リンカはライブラリやオブジェクト・ファイルを次の順序で検索・処理します。 の順で指定されます。 したがって、`foo.o -lz bar.o' はライブラリ `z' をファイル foo.o の後に検索し、かつ bar.oがzの関数を参照している場合、その関数はbar.oの前にあります。 はロードされないかもしれません。
関連
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み】strcmpが機能しない
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み] テスト
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開