Skip to content

Commit

Permalink
Suppress linker warning 4221 for MSVC
Browse files Browse the repository at this point in the history
Some #define switches cause the body of entire files to be omitted. This
causes a linker warning on Visual Studio 2017, for example

    warning LNK4221: This object file does not define any previously
    undefined public symbols, so it will not be used by any link
    operation that consumes this library

Since this is warning us about something that shouldn't be
earth-shattering news, we add a linker flag to suppress this warning on
MSVC builds.
  • Loading branch information
timou committed May 20, 2017
1 parent 92339a4 commit 293a182
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -741,6 +741,9 @@ if (BUILD_STATIC)
endif()

if (MSVC)
# Suppress linker warnings caused by #ifdef omission
# of file content.
set( CMAKE_STATIC_LINKER_FLAGS /ignore:4221 )
if (BUILD_SHARED)
add_library (libzmq SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${CMAKE_CURRENT_BINARY_DIR}/NSIS.template.in)
target_link_libraries (libzmq ${OPTIONAL_LIBRARIES})
Expand Down

0 comments on commit 293a182

Please sign in to comment.