red-0803
@red-0803

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【エラー】library not found for -lX11【c++/vscode/Mac】

C言語(c++)です。
独自のライブラリを使用しているのですが下記のエラーが出てコンパイルできません。
もちろんですがX11は正しい場所にあります。
コンパイラーが正しい場所を探せています。しかし、そこにX11は存在するのですが存在を確認できていない状態だと認識しています。

個人的には X codeのpathあたりに問題があると考えているのですが...

エラーコード

ld: library not found for -lX11
clang: error: linker command failed with exit code 1 (use -v to see invocation)

makefileを作成しコンパイルを行なっています。

HOME=/Users/sho/c++/kkk

All: prog01

prog01: prog01.c
    gcc -g -Wall prog01.c -o prog01  -I$(HOME)/eggx  -L$(HOME)/eggx   -leggx -lX11 -lm ******

*の部分はライブラリのファイル名が入りますが個人情報を含むので隠しています。

使用しているPCなど
・MacBook 16インチ(M1チップでない)Big Sur
・Vscode
・X Code
・X Quartzインストール済み

詳しい方、よろしくお願い致します。

0

1Answer

X11はどこにありますか。標準のシステムディレクトリ以外の場所に置いてある場合、LD_LIBRARY_PATHを設定する必要があります。

0Like

Comments

  1. @red-0803

    Questioner

    XQuartzをインストールした際に標準の場所からは違う所に置いたと思います。実際には自分より詳しい方に設定していただいたのでどこにあるかまでは詳しくわからないのですが。
    LD_LIBRARY_PATHの設定について詳しく教えて頂けないでしょうか?
  2. macの場合はDYLD_LIBRARY_PATHにX11のライブラリファイルがあるディレクトリのパスを加えればいいようです。以下のコマンドを打ってからコンパイルしてみてください。
    export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:path-to-x11-directory
  3. @red-0803

    Questioner

    返信ありがとうございます。
    コマンド打った後にコンパイルしてみたのですが
    エラーメッセージには変化なしという感じです。
  4. ではコンパイルコマンドに-L<path-to-x11-dir>を加えてコンパイルしてみてください。
  5. @red-0803

    Questioner

    makefileでコンパルしているのですが、加えるとしたらどこのあたりにこのコードを追加すればいいのでしょうか?
    私自身、c++を初めて一年ほどの学生なので至らぬ点が多いというかほとんど理解できておりませんので分かりやすく教えていただければ幸いです。
  6. -L$(HOME)/eggxの後ろに空白を開けて追加すれば大丈夫のはずです。
  7. @red-0803

    Questioner

    やってみましたが、/bin/sh: path-to-x11-dir: No such file or directory というエラーに変わりました。
  8. いや、path-to-x11-dirの部分は自分で正しいパスに書き換えて下さい(汗)
  9. @red-0803

    Questioner

    すいません、そうゆうことでしたか、重ね重ね申し訳ないのですが肝心のpathが分からないのでそれはX11が存在するpathということでしょうか?
    その場合、パスを探すコマンドなどについて教えてください(懇願)...
  10. パスはX11をインストールした人に聞かないとわからないですね。
  11. @red-0803

    Questioner

    一応、報告させていただきます。
    詳しい方にお願いしたところ、pathの問題を解決したところコンパイルできました。
    ありがとうございました!

Your answer might help someone💌