1

gtkd ライブラリを使用して hello world プログラムをコンパイルしようとしています。
私は dmd コンパイラ ( ~/ ディレクトリにインストールされています) を使用しており、コンパイラが問題なく動作することを既に確認しています。
念のため、私のソースコードは次のとおりです。

//pragma(lib, "gtkd");
//pragma(lib, "dl");

import gtk.MainWindow;
import gtk.Label;
import gtk.Main;

void main(string[] args)
    {

  Main.init(args);
  MainWindow win = new MainWindow("Hello World");
  win.setDefaultSize(200, 100);
  win.add(new Label("Hello World"));
  win.showAll();

  Main.run();
}

プラグマはコメント アウトされています。なぜなら (私がこれを正しく理解していれば)、プラグマは -Ll フラグ以上のことは何もせず、解決策に近づくこともできなかったからです。とにかく、ファイルを保存した後、次を実行します。

dmd hello.d -L-lgtkd -L-ldl

次のエラーが表示されます。

/usr/bin/ld: cannot find -lgtkd
collect2: error: ld returned 1 exit status
--- errorlevel 1

すでに libgtkd-3.a、libgtkdgl-3.a、および libgtkdsv-3.a を /usr/lib にコピーしましたが、ターミナルの出力は同じままでした。リンカが私のファイルを見つけられないことは理解していますが、リンカがそうするのを助ける方法が他にありません。

インストールの詳細については、この投稿とまったく同じようにすべてをセットアップしました。問題があるかどうかはわかりませんが、私のコンピューターは debian wheezy ベースのディストリビューションである crunchbang を実行しています。前もってありがとう、R

4

1 に答える 1

3
dmd hello.d -L-lgtkd -L-ldl

これは見つけようとしますlibgtkd.aが、持っていません。持っlibgtkd.aているlibgtkd-3.aので、使用する必要があります:

dmd hello.d -L-lgtkd-3 -L-ldl
于 2015-03-18T15:36:28.283 に答える