Tôi là người mới bắt đầu CMAKE. Dưới đây là một tệp cmake đơn giản hoạt động tốt trong các cửa sổ môi trường mingw. Vấn đề rõ ràng là với target_link_libraries()
chức năng của CMAKE nơi tôi đang liên kết libwsock32.a. Trong cửa sổ điều này hoạt động và tôi nhận được kết quả.
Tuy nhiên, như mong đợi, trong Linux, /usr/bin/ld
ý muốn tìm kiếm -lwsock32
KHÔNG có trên Hệ điều hành Linux.
Vấn đề của tôi là: Làm cách nào để hướng dẫn CMAKE tránh liên kết thư viện wsock32 trong Hệ điều hành Linux ???
Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.
Tệp CMake đơn giản của tôi:
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 )