2012-01-10 11 views
2

libsshを使用しようとしているVisual Studio 10にC++のDLLプロジェクトがあります。 libsshの機能を静的にリンクしたいと思います。非静的ライブラリを使用し、実行時にdllをインクルードすると、コードはコンパイルされ、期待どおりに実行されます。しかし、私は静的ライブラリに変更した場合、私は私が例えばを使用しようとしていますlibssh機能にリンカエラーをコンパイルして取得することはできません。:libsshの静的ライブラリによってvc10で未解決のシンボルが発生する

error LNK2019: unresolved external symbol __imp__ssh_free referenced in function ... 

答えて

2

あなたは偶然LIBSSH_STATICを設定するのを忘れましたか? This pageは、コンパイラオプションで自分で定義しなければならないと言います。

+0

imはlibsshウェブサイトから来た "static"という名前のフォルダにssh.libバイナリを使用しています。ファイルは共有ライブラリよりはるかに大きいですが、私は彼らが正しくコンパイルしたと仮定しています。 vs10にはnmのようなツールがあり、libのシンボルを見ることができますか? – kevincw01

+0

私がリンクしたページを読めば、コンパイラオプションでそのシンボルを自分で定義しなければならないようです。 VSプロジェクトのプロパティには、独自の定義用のセクションが必要です( '/ D')。 –

+0

私はそのページを読んだが、libsshをビルドすることについて話していると仮定し、libsshとリンクしていないと仮定した。私はあなたの提案を試み、返信します。 – kevincw01

関連する問題