2015-06-09 17 views
6

dahil edilmiştir, benim platformu, ben boost başlıklarını kullanıyorum her iki sınıf var Windows8 MSVC2013 64.hata WinSock.h zaten bir uygulama geliştirmek için Qt yaratıcısı üzerinde boost lib kullanıyorum Boost, Windows Qt

olduğunu

Şimdi bu sınıfı kullanmak gerekir ve ben başka kaynak dosyadan bu sınıf başlığı içermesi zaman benim yumruk sınıfında hatayı

error WinSock.h has already been included 

alıyorum ben

gibi boost başlığını eklendi
#define WIN32_LEAN_AND_MEAN 
#include <boost/asio.hpp> 
#include <boost/asio/deadline_timer.hpp> 
#include <boost/asio/io_service.hpp> 
#include <boost/asio/ip/tcp.hpp> 
#include <boost/asio/read_until.hpp> 
#include <boost/bind.hpp> 
#include <boost/asio/streambuf.hpp> 
#include <boost/asio/write.hpp> 
#include <boost/asio/read.hpp> 
#include <boost/asio/placeholders.hpp> 
#include <boost/foreach.hpp> 
#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/json_parser.hpp> 
#include <boost/foreach.hpp> 
#include <boost/thread/thread.hpp> 
#include <boost/thread/thread_time.hpp> 
#include <boost/interprocess/ipc/message_queue.hpp> 
#include <boost/interprocess/sync/interprocess_semaphore.hpp> 
#include <boost/bind.hpp> 

#include <boost/cstdint.hpp> 
#include <boost/circular_buffer.hpp> 
#include <boost/format.hpp> 
#include <boost/algorithm/string/split.hpp> 
#include <boost/algorithm/string/classification.hpp> 

ve ikinci sınıfta ben zaten burada Boost::asio winsock and winsock 2 compatibility issue cevabını buldu ama hala sorun yaşıyorum aynı şekilde

#define WIN32_LEAN_AND_MEAN 
#include <iostream> 

#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/json_parser.hpp> 
#include <boost/foreach.hpp> 
#include <boost/thread/thread.hpp> 
#include <boost/thread/thread_time.hpp> 
#include <boost/interprocess/sync/interprocess_semaphore.hpp> 
#include <boost/interprocess/ipc/message_queue.hpp> 
#include <boost/asio/deadline_timer.hpp> 
#include <boost/asio/io_service.hpp> 
#include <boost/asio/ip/tcp.hpp> 
#include <boost/asio/read_until.hpp> 
#include <boost/asio.hpp> 
#include <boost/bind.hpp> 
#include <boost/asio/streambuf.hpp> 
#include <boost/asio/write.hpp> 
#include <boost/asio/read.hpp> 
#include <boost/bind.hpp> 
#include <iostream> 
#include <boost/asio/placeholders.hpp> 
#include <fstream> 
#include <boost/cstdint.hpp> 
#include <boost/circular_buffer.hpp> 
#include <boost/format.hpp> 
#include <boost/algorithm/string/split.hpp> 
#include <boost/algorithm/string/classification.hpp> 

üzerinde başlığını kullandı.

Düzenleme: Benim ikinci sınıf içten o boost başlıklarını içeren çoklu zaman gibi nedenini olmak yok, birinci sınıf başlığının kullanılmasını? Ben boost başlığını kuşattı

Herhangi bir yardım takdir edilecektir

#ifndef class_obj__1 
#define class_obj__1 
//boost headers 
//boost headers 
#endif 

ile içerir.

Teşekkür Haris

+0

Hata, birinci sınıfta mı yoksa ikinci sınıfta mı geliyor? –

+0

Hata iletisi, 'C: \ boost \ boost_1_58_0 \ boost \ asio \ detail \ socket_types.hpp: 24: hata: C1189: #error: WinSock.h zaten dahil edildi' – Haris

+0

've' 'ikinci sınıf için tüm 'artırma' başlıkları sonra? –

cevap

11
-DWIN32_LEAN_AND_MEAN olarak #define WIN32_LEAN_AND_MEAN g ++ komut satırı argümanı listesini Taşı

. Bu bana yardımcı oldu.
#include direktiflerini yeniden düzenlemek için bana yardımcı olan bir şey daha boost tüm diğerlerini içermesidir.