1

ライブラリをインストールするのはこれが初めてです。こちらの指示に従いました。プログラミングのオンライン講座です。

私は Unix にあまり詳しくありません。cs50.h ファイルを #include したサンプル c ファイルの 1 つをコンパイルしようとすると、次のようになります。

cc1: error: /usr/local/include: not a directory

cd /usr/local/includeまた、 orと書くと、両方とも表示されますcd /usr/local/libが、再びディレクトリではないことがわかります。ls /usr/local

何か案は?

4

1 に答える 1

3

ヘッダーの指示が次のとおりであるとします。

  • 独自のシステムで静的ライブラリとしてコンパイルするには:
  • % gcc -c -ggdb -std=c99 cs50.c -o cs50.o
  • % ar rcs libcs50.a cs50.o
  • % rm -f cs50.o
  • % cp cs50.h /usr/local/include
  • % cp libcs50.a /usr/local/lib

プロンプトとして「%」を使用していることに注意してください。これは、操作を root として実行する必要があることを示しています。

システムの設定が間違っていない限り、root 権限を使用してファイルを の下のディレクトリにコピーする必要があります/usr/local。たとえばsudo、コマンドのプレフィックスとして次を使用できます。

sudo cp cs50.h /usr/local/include
sudo cp libcs50.a /usr/local/lib

/usr/local/includeディレクトリとはまだなく/usr/local/lib、次の 2 つのファイル (ディレクトリではない) があると (かなり高い確信度で) 推測できます。

  • /usr/local/includeヘッダー cs50.h を含む
  • /usr/local/lib静的ライブラリを含む

ls -l /usr/localおそらくと でこの観察結果を検証する必要がありますfile /usr/local/*。次に、ファイルを削除し、ディレクトリを作成して、ファイルを新しく作成したディレクトリにコピーする必要があります。

この説明が説明していない唯一のことは、エラー メッセージ (最初は ' cc1: error: usr/local/include: not a directory' と表示されていた) の先頭のスラッシュが欠落していることです。現時点では、この質問をする際の転記ミスが原因であると考えています。(そして、コメントと編集により、その診断が確認されます。)

于 2011-08-08T04:25:16.193 に答える