2016-07-26 11 views
2

私はC++プログラムのtest.cppを持っています.2つの.libファイル(fhlib.libとgc_lib.lib)をリンクしたいのですが、同じフォルダに.libファイルがあります私の.cppプログラムとして。私は、Windows 7上Windows 7で.libファイルをリンクする

だ私がこれまで試してみましたが、次のされています

g++ -o main main.cpp -L/Users\Documents\Visual Studio 2015\Projects\My Project -lfhlib 

しかし、私は私がコピーされたため、パスが正しいことを確信している

No such file or directory error. 

を取得しますそれはプロパティ - >場所からです。しかし、それはコンパイルされていないので、私は "C:\"を削除していた。

編集:私はこれを見つけましたhttp://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use

だから私は

"-I" instead of "-l" 

を使用してみました。しかし、まだ取得work.Iしません:

undefined reference to 'fh_set'... 
+1

'-I'オプションはインクルードパス用です – wasthishelpful

答えて

0

だから問題はlibファイルがVSでコンパイルされていることです。そして、g ++の代わりにVSコンパイラを使用しなければならず、すべてうまくいきました。

2

Windows上++グラムでコンパイルしている場合、私はあなたがMinGWのを使用していると思います: MinGWは.aライブラリを利用しています。 "-l"オプションを使用すると、コンパイラは拡張子.aを持つライブラリファイルを探しています。

.lib形式のライブラリは、Visual Studioでコンパイルされます。これは、このように使用できません。ソースがある場合、またはプロジェクトをVisual Studioに移行する場合は、MinGWでライブラリをコンパイルしてください。

+0

私はすでにVSで自分のプロジェクトを持っていて、そこで実行することができます。しかし、今はos.systems( "g ++ -o ...")を使ってPythonインタフェースから実行したいと考えています。 g ++やgccを使ってリンクする方法はありませんか?ソース、.dllファイルはどういう意味ですか? – lads

+0

ライブラリでプレーンCを使用している場合は、パスを.lib: 'g ++ -o main main.cpp" C:/ Users/Documents/Visual Studio 2015/Projects/My Project/fhlib.lib " '(特殊文字の誤解を避けるために、パスのスペースのため引用符を使用し、 '\'の代わりに '/'を使用しています)。あなたのライブラリがC++を使用している場合、コンパイラ間でバイナリ互換性がないので、動作しません。 – wasthishelpful

+0

それは動作しません。私は 'fh_set'への未定義の参照を**得る...私はケーキのファイルの中でそれらをリンクすることができますし、os.system( "make")を実行? – lads

関連する問題