0

Visual Studio 2008 x64 で libpqxx をビルドした人はいますか? 私はそれを構築しました。libpqxx_staticD.lib を使用したデバッグは正常に機能しますが、libpqxx_static.lib を使用したリリースは次の時点で失敗します。

pqxx::接続接続(...);

コール スタック:

postgres.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,pqxx::notification_receiver *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,pqxx::notification_receiver *> >,1> >::_Init()  + 0x60 bytes 
postgres.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,pqxx::notification_receiver *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,pqxx::notification_receiver *> >,1> >::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,pqxx::notification_receiver *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,pqxx::notification_receiver *> >,1> >()  + 0x6c bytes    
postgres.exe!std::multimap<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,pqxx::notification_receiver *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,pqxx::notification_receiver *> > >::multimap<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,pqxx::notification_receiver *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,pqxx::notification_receiver *> > >()  + 0x3f bytes    
postgres.exe!pqxx::connection_base::connection_base()  + 0x83 bytes 
postgres.exe!pqxx::basic_connection<pqxx::connect_direct>::basic_connection<pqxx::connect_direct>(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & opt="host=localhost user=tka4 password=sga19791988 dbname=sfMakseq")  Line 65 + 0x2d bytes   C++
postgres.exe!main(int argc=5, char * * argv=0x00000000003470b0)  Line 36 + 0x40 bytes   C++
postgres.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes

エラーメッセージ:

「postgres.exe の 0x000000013f0612e0 で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0x0000000077225418.」

私が何を間違っているか知っているかもしれませんか?

4

1 に答える 1

1

そのため、最初に /machine:I386 の代わりに /machine:x64 を使用しました。それは私の間違いでした。「vcvarsall.bat amd64」を含む /machine:amd64 である必要があります。

于 2013-02-28T08:46:37.257 に答える