2012-01-14 7 views
0

私はYAMLをC++で学ぼうとしていますが、CMakeを使ってVC++ Express 2010で.dllと.libファイルにyaml-cppファイルを作成しました。 SFMLのような他のライブラリを設定するのと同じ方法でプロジェクトをセットアップしました。VCAM 2010と一緒にYAMLをリリースするとコンパイルされますが、デバッグはしません。

私は取得YAML-CPPサイト上の特定のサンプルコードのリリースバージョンをビルドしようとすると、私の問題は、次のとおりです。

Ogre 
Dragon 
Wizzard 

しかし、私はデバッグバージョンをビルドしようとすると、私を得ます:

Assertion failed: false, file d:\microsoft visual studio 10.0\vc\include\yaml-cp 
p\nodeimpl.h, line 39 

これを処理する方法はわかりません。ライブラリのデバッグ版をビルドする必要はありますか?はいの場合、どうですか?私は何かを変更することができた場合、どのプロジェクトオプションがこれに影響するか分かりません。私がコンパイルしていたとき、私は警告を取得

:テンプレートのプリントアウトがたくさんで

d:\microsoft visual studio 10.0\vc\include\yaml-cpp\conversion.h(51): warning C4146: unary minus operator applied to unsigned type, result still unsigned 

を、f.e. :

1>   d:\microsoft visual studio 10.0\vc\include\yaml-cpp\nodereadimpl.h(35) : see reference to function template instantiation 'bool YAML::ConvertScalar<T>(const YAML::Node &,T &)' being compiled 
1>   with 
1>   [ 
1>    T=unsigned int 
1>   ] 

これは私の側で問題ですか?悪いCMakeファイルとコンパイル?

+0

アサーションが発生した場所でコールスタックをポストできますか? –

答えて

0
> yaml_test.exe!main() Line 108 C++ 
    yaml_test.exe!__tmainCRTStartup() Line 555 + 0x19 bytes C 
    yaml_test.exe!mainCRTStartup() Line 371 C 
    kernel32.dll!7c817077()  
    [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] 

位置は中止:

DOC [I] >>モンスター。

プログラムは、オーバーロードされた機能を入力しようとしません。

私自身のコードでは、最初の>>演算子を使用しようとするとブレークします。これは、intのための1つのビルドです。

私はhttp://pastebin.com/PdKWDgQaのコードを使用していますが、オリジナルのyaml-cppサンプルコードでは同じことをしています。リリースモードの出力が正しく、デバッグが停止して同じアサートコードを返します。参考のため

は、モンスターのために>>機能で{ブラケットのリリースモードでスタック呼び出しは次のようになります。

> yaml_test.exe!operator>>(const YAML::Node & node={...}, Monster & monster={...}) Line 36 C++ 
    yaml_test.exe!main() Line 109 C++ 
    msvcr100.dll!_initterm(void (void)* * pfbegin=0x00000001, void (void)* * pfend=0x003a5050) Line 873 C 
    yaml_test.exe!__tmainCRTStartup() Line 555 + 0x17 bytes C 
    kernel32.dll!7c817077()  
    [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] 

EDIT:実は、私はYAML-CPPを再構築している

私はデバッグとしてCMakeで作ったプロジェクト、私は今それを使用するとすべて正常に動作します。申し訳ありませんが、これが明らかな場合は、私はこれらの種類の問題に新しいです。

関連する問題