2016-08-13 127 views
0

我儘量採取簡單的Boost.Asio的daytime6教程文件,該文件workes偉大 並添加boost.log簡單的記錄,從SETTINGS_FILE例如 的代碼看起來像這樣採取:的Visual Studio 2013升壓日誌v1_61_0鏈接錯誤

// 
// server.cpp 
// ~~~~~~~~~~ 
// 
// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) 
// 
// Distributed under the Boost Software License, Version 1.0. (See accompanying 
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 
// 

#include <ctime> 
#include <iostream> 
#include <string> 
#include <exception> 
#include <fstream> 
#include <boost/array.hpp> 
#include <boost/bind.hpp> 
#include <boost/shared_ptr.hpp> 
#include <boost/asio.hpp> 
#include <boost/log/common.hpp> 
#include <boost/log/attributes.hpp> 
#include <boost/log/utility/setup/from_stream.hpp> 

namespace logging = boost::log; 
namespace attrs = boost::log::attributes; 
namespace src = boost::log::sources; 
using boost::asio::ip::udp; 
enum severity_level 
{ 
    normal, 
    notification, 
    warning, 
    error, 
    critical 
}; 
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, src::severity_logger< >) 

std::string make_daytime_string() 
{ 
    using namespace std; // For time_t, time and ctime; 
    time_t now = time(0); 
    return ctime(&now); 
} 

class udp_server 
{ 
public: 
    udp_server(boost::asio::io_service& io_service) 
     : socket_(io_service, udp::endpoint(udp::v4(), 4221)) 
    { 
     start_receive(); 
    } 

private: 
    void start_receive() 
    { 
     socket_.async_receive_from(
      boost::asio::buffer(recv_buffer_), remote_endpoint_, 
      boost::bind(&udp_server::handle_receive, this, 
      boost::asio::placeholders::error, 
      boost::asio::placeholders::bytes_transferred)); 
    } 

    void handle_receive(const boost::system::error_code& error, 
     std::size_t /*bytes_transferred*/) 
    { 
     if (!error || error == boost::asio::error::message_size) 
     { 
      boost::shared_ptr<std::string> message(
       new std::string(make_daytime_string())); 

      socket_.async_send_to(boost::asio::buffer(*message), remote_endpoint_, 
       boost::bind(&udp_server::handle_send, this, message, 
       boost::asio::placeholders::error, 
       boost::asio::placeholders::bytes_transferred)); 

      start_receive(); 
     } 
    } 

    void handle_send(boost::shared_ptr<std::string> /*message*/, 
     const boost::system::error_code& /*error*/, 
     std::size_t /*bytes_transferred*/) 
    { 
    } 

    udp::socket socket_; 
    udp::endpoint remote_endpoint_; 
    boost::array<char, 1> recv_buffer_; 
}; 

int main() 
{ 

    try 
    { 
     src::severity_logger< >& lg = my_logger::get(); 
     BOOST_LOG_SEV(lg, normal) << "This is a normal severity record"; 
     std::cout << "utp server started port:4221 \n" << std::endl; 
     boost::asio::io_service io_service; 
     udp_server server(io_service); 
     io_service.run(); 
    } 
    catch (std::exception& e) 
    { 
     std::cerr << e.what() << std::endl; 
    } 

    return 0; 
} 

鏈接庫是:

libboost_iostreams-vc120-mt-sgd-1_61.lib;libboost_regex-vc120-mt-sgd-1_61.lib;libboost_system-vc120-mt-sgd-1_61.lib;libboost_thread-vc120-mt-sgd-1_61.lib;libboost_timer-vc120-mt-sgd-1_61.lib;libboost_date_time-vc120-mt-sgd-1_61.lib;libboost_filesystem-vc120-mt-sgd-1_61.lib;libboost_atomic-vc120-mt-sgd-1_61.lib;libboost_log_setup-vc120-mt-sgd-1_61.lib;%(AdditionalDependencies) 

的預處理器標誌是:

WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=0x0501;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) 

根據此線程:
Boost-log linker error
我確實檢查它是否設置爲是(/ Zc:wchar_t),它確實如此。

,但我仍然得到這些鏈接錯誤的:

1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static void * __cdecl boost::log::v2s_mt_nt5::attribute::impl::operator new(unsigned int)" ([email protected]@[email protected]@[email protected]@[email protected]) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::aux::severity_level<int>::severity_level<int>(void)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static void __cdecl boost::log::v2s_mt_nt5::attribute::impl::operator delete(void *,unsigned int)" ([email protected]@[email protected]@[email protected]@[email protected]) referenced in function [email protected]@[email protected]@[email protected]@[email protected]@[email protected]$0 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt5::attribute_set::attribute_set(void)" ([email protected][email protected]@[email protected]@[email protected]) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>(void)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt5::attribute_set::attribute_set(class boost::log::v2s_mt_nt5::attribute_set const &)" ([email protected][email protected]@[email protected]@[email protected]@@Z) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>(class boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model> const &)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt5::attribute_set::~attribute_set(void)" ([email protected][email protected]@[email protected]@[email protected]) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>::~basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>(void)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: struct std::pair<class boost::log::v2s_mt_nt5::attribute_set::iter<0>,bool> __thiscall boost::log::v2s_mt_nt5::attribute_set::insert(class boost::log::v2s_mt_nt5::attribute_name,class boost::log::v2s_mt_nt5::attribute const &)" ([email protected][email protected][email protected]@[email protected]@[email protected][email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@@Z) referenced in function "public: class boost::log::v2s_mt_nt5::attribute & __thiscall boost::log::v2s_mt_nt5::aux::attribute_set_reference_proxy::operator=(class boost::log::v2s_mt_nt5::attribute const &)const " ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static void __cdecl boost::log::v2s_mt_nt5::record_view::public_data::destroy(struct boost::log::v2s_mt_nt5::record_view::public_data const *)" ([email protected][email protected][email protected][email protected]@[email protected]@[email protected]@Z) referenced in function "public: void __thiscall boost::log::v2s_mt_nt5::record::reset(void)" ([email protected]@[email protected]@[email protected]@QAEXXZ) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static class boost::shared_ptr<class boost::log::v2s_mt_nt5::core> __cdecl boost::log::v2s_mt_nt5::core::get(void)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>(class boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model> const &)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: bool __thiscall boost::log::v2s_mt_nt5::core::get_logging_enabled(void)const " ([email protected]@[email protected]@[email protected]@QBE_NXZ) referenced in function "public: class boost::log::v2s_mt_nt5::record __thiscall boost::log::v2s_mt_nt5::sources::basic_composite_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model,struct boost::log::v2s_mt_nt5::sources::features<struct boost::log::v2s_mt_nt5::sources::severity<int> > >::open_record<struct boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt5::keywords::tag::severity,enum severity_level const > >(struct boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt5::keywords::tag::severity,enum severity_level const > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@@[email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: class boost::log::v2s_mt_nt5::record __thiscall boost::log::v2s_mt_nt5::core::open_record(class boost::log::v2s_mt_nt5::attribute_set const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function "protected: class boost::log::v2s_mt_nt5::record __thiscall boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>::open_record_unlocked<struct boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt5::keywords::tag::severity,enum severity_level const > >(struct boost::parameter::aux::tagged_argument<struct boost::log::v2s_mt_nt5::keywords::tag::severity,enum severity_level const > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@@[email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "private: void __thiscall boost::log::v2s_mt_nt5::core::push_record_move(class boost::log::v2s_mt_nt5::record &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function "public: void __thiscall boost::log::v2s_mt_nt5::core::push_record(class boost::log::v2s_mt_nt5::record &&)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: void __thiscall boost::log::v2s_mt_nt5::aux::once_block_sentry::commit(void)" ([email protected][email protected]@[email protected]@[email protected]@QAEXXZ) referenced in function "public: static class boost::shared_ptr<struct boost::log::v2s_mt_nt5::sources::aux::logger_holder<class boost::log::v2s_mt_nt5::sources::severity_logger<int> > > & __cdecl boost::log::v2s_mt_nt5::aux::lazy_singleton<struct boost::log::v2s_mt_nt5::sources::aux::logger_singleton<struct my_logger>,class boost::shared_ptr<struct boost::log::v2s_mt_nt5::sources::aux::logger_holder<class boost::log::v2s_mt_nt5::sources::severity_logger<int> > > >::get(void)" ([email protected][email protected][email protected][email protected]@@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected][email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "private: bool __thiscall boost::log::v2s_mt_nt5::aux::once_block_sentry::enter_once_block(void)const " ([email protected][email protected]@[email protected]@[email protected]@ABE_NXZ) referenced in function "public: bool __thiscall boost::log::v2s_mt_nt5::aux::once_block_sentry::executed(void)const " ([email protected][email protected]@[email protected]@[email protected]@QBE_NXZ) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "private: void __thiscall boost::log::v2s_mt_nt5::aux::once_block_sentry::rollback(void)" ([email protected][email protected]@[email protected]@[email protected]@AAEXXZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::aux::once_block_sentry::~once_block_sentry(void)" ([email protected]@[email protected]@[email protected]@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static class boost::shared_ptr<struct boost::log::v2s_mt_nt5::sources::aux::logger_holder_base> __cdecl boost::log::v2s_mt_nt5::sources::aux::global_storage::get_or_init(class boost::typeindex::stl_type_index,class boost::shared_ptr<struct boost::log::v2s_mt_nt5::sources::aux::logger_holder_base> (__cdecl*)(void))" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected][email protected]@[email protected][email protected]@Z) referenced in function "public: static void __cdecl boost::log::v2s_mt_nt5::sources::aux::logger_singleton<struct my_logger>::init_instance(void)" ([email protected][email protected][email protected]@@[email protected]@[email protected]@[email protected]@SAXXZ) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "void __cdecl boost::log::v2s_mt_nt5::sources::aux::throw_odr_violation(class boost::typeindex::stl_type_index,class boost::typeindex::stl_type_index,struct boost::log::v2s_mt_nt5::sources::aux::logger_holder_base const &)" ([email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected][email protected]@@Z) referenced in function "public: static void __cdecl boost::log::v2s_mt_nt5::sources::aux::logger_singleton<struct my_logger>::init_instance(void)" ([email protected][email protected][email protected]@@[email protected]@[email protected]@[email protected]@SAXXZ) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl boost::log::v2s_mt_nt5::aux::unhandled_exception_count(void)" ([email protected]@[email protected]@[email protected]@YAIXZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::aux::record_pump<class boost::log::v2s_mt_nt5::sources::severity_logger<int> >::record_pump<class boost::log::v2s_mt_nt5::sources::severity_logger<int> >(class boost::log::v2s_mt_nt5::sources::severity_logger<int> &,class boost::log::v2s_mt_nt5::record &)" ([email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "class boost::log::v2s_mt_nt5::attribute_name __cdecl boost::log::v2s_mt_nt5::aux::default_attribute_names::severity(void)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@XZ) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::sources::basic_severity_logger<class boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>,int>::basic_severity_logger<class boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>,int>(class boost::log::v2s_mt_nt5::sources::basic_severity_logger<class boost::log::v2s_mt_nt5::sources::basic_logger<char,class boost::log::v2s_mt_nt5::sources::severity_logger<int>,struct boost::log::v2s_mt_nt5::sources::single_thread_model>,int> const &)" ([email protected][email protected][email protected]@[email protected][email protected]@[email protected]@[email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "unsigned __int64 & __cdecl boost::log::v2s_mt_nt5::sources::aux::get_severity_level(void)" ([email protected]@[email protected][email protected]@[email protected]@YAAA_KXZ) referenced in function "public: virtual class boost::intrusive_ptr<struct boost::log::v2s_mt_nt5::attribute_value::impl> __thiscall boost::log::v2s_mt_nt5::sources::aux::severity_level<int>::impl::detach_from_thread(void)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@@[email protected]) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static struct boost::log::v2s_mt_nt5::aux::stream_provider<char>::stream_compound * __cdecl boost::log::v2s_mt_nt5::aux::stream_provider<char>::allocate_compound(class boost::log::v2s_mt_nt5::record &)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::aux::record_pump<class boost::log::v2s_mt_nt5::sources::severity_logger<int> >::record_pump<class boost::log::v2s_mt_nt5::sources::severity_logger<int> >(class boost::log::v2s_mt_nt5::sources::severity_logger<int> &,class boost::log::v2s_mt_nt5::record &)" ([email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@@Z) 
1>net_udp_server.obj : error LNK2019: unresolved external symbol "public: static void __cdecl boost::log::v2s_mt_nt5::aux::stream_provider<char>::release_compound(struct boost::log::v2s_mt_nt5::aux::stream_provider<char>::stream_compound *)" ([email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]@@Z) referenced in function "public: __thiscall boost::log::v2s_mt_nt5::aux::record_pump<class boost::log::v2s_mt_nt5::sources::severity_logger<int> >::auto_release::~auto_release(void)" ([email protected][email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]) 
1>D:\dev\cpp\server\RakNet\RakNet\Debug\net_udp_server.exe : fatal error LNK1120: 21 unresolved externals 
+0

將'代碼生成 - >運行時庫'設置設置爲'多線程調試(/ MTd)'?另外,在這個問題中添加'C/C++ - > Command Line'和'Liner - > Command Line'部分輸出可能會有所幫助,因爲它們列出了編譯和鏈接中使用的所有選項。 – dewaffled

+0

您是否手動添加了增強庫,或者您是否設置了其他庫目錄? – Blacktempel

+0

我手動添加 – user63898

回答

2

我懷疑你的加速是專爲Windows Vista和更高版本,而你建立你的代碼,爲Windows XP。因此,Boost.Log符號在庫二進制文件和目標文件中發生了不同的變形。

要構建Boost for Windows XP,您需要在構建Boost時將define=BOOST_USE_WINAPI_VERSION=0x0501添加到b2命令行,並在構建代碼時同樣定義此宏。

+0

我建立它的Windows 7 32位,沒有xp – user63898

+1

但是你正在構建XP的代碼,因爲你的'_WIN32_WINNT = 0x0501'在你的定義。 –