「sudo make」を実行しないと、C は実行ファイルを作成できません。

「sudo make」を実行しないと、C は実行ファイルを作成できません。

以前は通常どおり make を実行できましたが、現在はスーパーユーザーとして make を実行する必要があります。そうしないと、C コンパイラが実行可能ファイルを作成できないというエラーが表示され、失敗します。なぜこのようなことが起こるのでしょうか?

答え1

誤って sudo make を一度実行した可能性があります。そのため、sudo で作成されたファイルを書き換えたり、通常のユーザーでは書き込みできないディレクトリに書き込んだりする必要があるため、make が機能しなくなります。

答え2

makeとには違いがありますmake install。 make はコンパイルのみを行い、 make install は実行ファイルをシステムにコピーします。その後、 make install は多くの場合、sudo make install宛先ディレクトリ (/bin、/sbin、/usr/bin ...) への書き込みアクセスを取得するために、root ( ) として実行する必要があります。 それ自体が、root 権限なしではコンパイルに失敗すると述べるのは、make確かに不自然です。

  1. ユーザーとして、ビルドしようとしている (すべての) ファイルへの読み取りおよび書き込みアクセス権があることを確認してください。特に、サードパーティ (usbkey、web など) からソースを取得した場合、作成者が権限をどのように設定したかは誰にもわかりません。
  2. make次に、オブジェクト ファイルを作成するフォルダーへの読み取りおよび書き込みアクセス権があることを確認します。
  3. では、具体的に教えてください。どのようなエラーが発生していますか? 共有できるログはありますか?

関連情報