আমি CMAKE এর একটি শিক্ষানবিস। নীচে একটি সাধারণ cmake ফাইল যা মিং ওয়াট এনভায়রনমেন্ট উইন্ডোতে ভাল কাজ করে। সমস্যাটি স্পষ্টভাবে target_link_libraries()
CMAKE এর ফাংশনের সাথে যেখানে আমি libwsock32.a লিঙ্ক করছি। উইন্ডোতে এটি কাজ করে এবং আমি ফলাফলগুলি পাই।
তবে, যেমনটি প্রত্যাশা করা হয়েছে, লিনাক্সে, লিনাক্স ওএসে নেই যা /usr/bin/ld
অনুসন্ধান করবে -lwsock32
।
আমার সমস্যা হ'ল লিনাক্স ওএসে ডাব্লু এসক 32 লাইব্রেরিটি লিঙ্ক এড়াতে আমি CMAKE কে কীভাবে নির্দেশ দেব ???
যে কোন সাহায্য সাদরে গৃহীত হবে।
আমার সরল সিএমকে ফাইল:
PROJECT(biourl)
set (${PROJECT_NAME}_headers ./BioSocketAddress.h ./BioSocketBase.h ./BioSocketBuffer.h ./BioSocketCommon.h ./BioSocketListener.h ./BioSocketPrivate.h ./BioSocketStream.h ./BioUrl.h BioDatabase.h )
set (${PROJECT_NAME}_sources BioSocketAddress.C BioSocketBase.C BioSocketCommon.C BioSocketStream.C BioUrl.C BioDatabase.C )
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_headers} ${${PROJECT_NAME}_sources} )
# linkers
#find_library(ws NAMES wsock32 PATHS ${PROJECT_SOURCE_DIR} NO_SYSTEM_ENVIRONMENT_PATH NO_DEFAULT_PATH)
target_link_libraries(${PROJECT_NAME} bioutils wsock32)
install (TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/archive )