1
我有一個boost套接字實現,它可以在Windows上運行完美,但在Mac上,相同的代碼會得到一堆編譯錯誤,比如。Mac不能編譯,Windows和Linux會 - 提升ASIO?
src/modules/socket/ssl_tcp_socket_binding.cpp: In constructor
'ti::SecureTCPSocket::SecureTCPSocket(tide::Host*, ti::TCPSocketBinding*)':
src/modules/socket/ssl_tcp_socket_binding.cpp:27: error: class 'ti::SecureTCPSocket' does not have any field named 'Socket'
src/modules/socket/ssl_tcp_socket_binding.cpp:29: error: no matching function for call to 'ti::Socket<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >&> >::Socket()'
構造
SecureTCPSocket::SecureTCPSocket(Host *host, TCPSocketBinding * tcp_socket_binding)
: Socket(host, string("Socket.SecureTCPSocket")),
頁眉
class SecureTCPSocket
: public Socket<boost::asio::ssl::stream<tcp::socket&> >
{
我不明白這是爲什麼在Mac上的一個問題,但在Linux上的Windows &完全正常?
任何想法,我可能做錯了或失蹤?
如果我這樣做,我會抱怨一個巨大的錯誤'注意:缺少的vtable通常意味着第一個非內聯虛擬成員函數沒有定義。 ld:符號(s)未找到建築i386',這使得更少的意義,那麼這個錯誤+ _ + – Steven
@Steven:我會說這個錯誤是非常有意義的,並可能指向另一個問題,其他編譯器更馬虎!這次它指出需要定義的函數(例如,模板實例化)不會被實例化。這也意味着編譯時錯誤確實已解決,但鏈接失敗。至少,這是進步! –