1

[http://llvm.org/docs/WritingAnLLVMPass.html][1] を使って、非常に単純なパスを書こうとしています。パスを作成してコンパイルしました (一部は Stackoverflow コミュニティに感謝します) が、実行に問題があります...

ドキュメントには次のように書かれています。

テストするには、入門ガイドの最後にある例に従って、「Hello World」を LLVM にコンパイルします。これで、プログラムのビットコード ファイル (hello.bc) を次のように変換して実行できます (またはもちろん、任意のビットコード ファイルが機能します)。

$ opt -load ../../../Debug+Asserts/lib/Hello.so -hello < hello.bc > /dev/null Hello: __main Hello: puts Hello: main 「-load」オプションは、 「opt」は、パスを共有オブジェクトとしてロードする必要があります。これにより、「-hello」が有効なコマンド ライン引数になります (これが、パスを登録する必要がある理由の 1 つです)。hello パスはプログラムに興味深い変更を加えないため、opt の結果を破棄します (/dev/null に送信します)。

ただし、コマンドを実行すると、次の問題が発生します。

mymachine$./opt -load ../../../Debug+Asserts/lib/Hello.so -hello < hello.bc > /dev/null 
Error opening '../../../Debug+Asserts/lib/Hello.so': 
   dlopen(../../../Debug+Asserts/lib/Hello.so, 9): image not found  
   -load request ignored. opt: Unknown command line argument '-hello'.  
Try: './opt -help' opt: Did you mean '-help'?

何か案は?私はOSXを実行していますが、それが問題の一部であると思われます...

4

2 に答える 2

1

私が(binディレクトリから)欲しかったコマンドは次のとおりでした。

opt  -load ../lib/LLVMHello.dylib -hello < hello.bc > /dev/null

.dylib は .so に相当する OSX であることは理解していますが、これはほとんど当て推量でした...

于 2012-08-09T19:36:57.813 に答える
0

相対パスではなく絶対パスを使用してみてください。これは、比較的明白な「ファイルが見つかりません」のようです。

于 2012-08-09T19:38:00.720 に答える