3

Eclipse CDT を使用して、単一のライブラリ (.lib) ファイルをプロジェクトにリンクしようとしています。

エクリプスのセットアップ

コンパイル中に、ファイル パスにスペース文字が含まれているため、パスがスペースで分割され、ファイルが見つからず、コンパイルが正常に実行されません。この実行文字列は Eclipse によって生成されます。

g++ -static-libgcc -static-libstdc++ -o "Test.exe" "src\\Test.o" -lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib 
g++: error: Files/Java/jdk1.7.0_15/lib/jvm.lib: No such file or directory

全体として、コンパイル用のライブラリ オプションの構築に問題があります。

-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib

パスを引用符で囲み、パスのディレクトリをライブラリ パスとして追加しようとしましたが-l、どちらの場合もオプションの形式が正しくありません。

パスにスペースを含むライブラリを Eclipse CDT に正常に追加するにはどうすればよいですか?

4

1 に答える 1

2
  1. スペースを含むパスは、クォートで囲む必要があります。

  2. Libraries タブでは、おそらくライブラリ名 (つまりjvm)のみを指定する必要があります。次に、[ライブラリ パス] タブで指定します。"C:/Program Files/Java/jdk1.7.0_15/lib"

コマンドインタープリターはそれを単一のオプションとして扱いますが、引用符を削除するため、これは有効なオプション形式です"-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib"

したがって、g++ "-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib"cmd を入力すると、g++ に渡される引数は-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib引用符なしになります。

ただし、それ自体に-l<path-to-library-file>は無効なオプションですgccg++ <path-to-library-file>またはのいずれかを使用できます g++ -L<path-to-library-dir> -l<library-name>

したがって、有効なオプションは次のようになります

g++ <..> "src\\Test.o" "-LC:/Program Files/Java/jdk1.7.0_15/lib" -ljvm
于 2013-05-09T21:35:24.700 に答える