2013-02-27 19 views
8

मैंने पाया केवल यह स्ट्रिंगcmake में winsock कैसे लिंक करें?

find_library(WSOCK32_LIBRARY wsock32) 
    find_library(WS2_32_LIBRARY ws2_32) 

(मैं cmake में शुरुआत कर रहा हूँ) कैसे cmake में Winsock2 से जोड़ने के लिए (विनसॉक?)?

उत्तर

16

चूंकि ये दोनों विंडोज एसडीके का हिस्सा हैं, इसलिए आपको उनके लिए खोज करने की आवश्यकता नहीं है। मान लें कि आपके पास एसडीके स्थापित है, आप बस कुछ ऐसा कर सकते हैं:

add_executable(MyExe main.cpp) 
if(WIN32) 
    target_link_libraries(MyExe wsock32 ws2_32) 
endif() 
+1

वास्तव में, आपको "उन्हें" खोज करने की आवश्यकता नहीं है। हालांकि, आप जिस मौके पर करते हैं ... क्या उन्हें ढूंढ सकते हैं? उदाहरण के लिए यदि आप एक असामान्य कंपाइलर ड्राइवर के माध्यम से MinGW का उपयोग कर रहे हैं? – cheshirekow

+1

हां, आप प्रत्येक पुस्तकालय के लिए पूर्ण पथ प्राप्त करने के लिए ['find_library'] (http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_library) का उपयोग कर सकते हैं, फिर न केवल 'target_link_libraries' कॉल में नंगे 'wsock32' और/या' ws2_32' के स्थान पर परिणाम शामिल करें। – Fraser