web-dev-qa-db-ja.com

18.04にアップデートした後、gtkアプリをコンパイルできません

ユーザーインターフェイスを使用してプログラムを.outファイルとしてコンパイルしようとしています。以前とまったく同じようにコンパイルしましたが、これを使用してコードを編集しませんでした

`pkg-config --cflags --libs gtk+-2.0`

16.04に戻って、コードはアプリケーションにコンパイルされ、ダブルクリックしてアプリケーションを起動できました。今回はできません。ダブルクリックすると、Gladeで開こうとし、エラーが表示されます。何らかの理由で、コンパイラまたはシステムは、ファイルが共有ライブラリであると想定しています。どうすればアプリケーションであることを伝えることができますか? gtkでコンパイルされていないCファイルのように、ターミナルで実行する必要があります。

18.04でアプリとしてコンパイルするにはどうすればよいですか?

2
user927958

Gcc-6.2以降、Ubuntuのgccは--enable-default-pieオプション(Position Independent Executable)を使用して構成されているため、これが共有オブジェクトです。 (-LSB共有オブジェクト

これに対するコンパイラのオーバーライドは-fno-pie、リンカのオーバーライドは-no-pie

どうやらa.outファイルの場合、両方のオプションが一緒に機能しても、リンカー-no-pieを適用するだけで十分です。

また、ファイルマネージャーが要因である場合もあります。共有オブジェクトをexectubaleとしてマークおよび実行できるようにするものもあります。 Nautilusはもうありません(nemoは

1
doug