MSVC не генерирует lib через cmake - PullRequest
0 голосов
/ 05 июня 2018

CMakeLists:

if (MSVC)
    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
add_library(${PROJECT_NAME} SHARED ${SOURCES})

CMake 2.8.12 + MSVC 2015

выходы конфигурации:

-- The C compiler identification is MSVC 19.0.24210.0
-- The CXX compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMAKE_C_FLAGS_DEBUG is /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
CMAKE_C_FLAGS_RELEASE is /MD /O2 /Ob2 /D NDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO is /MD /Zi /O2 /Ob1 /D NDEBUG
CMAKE_C_FLAGS_MINSIZEREL is /MD /O1 /Ob1 /D NDEBUG
-- Configuring done
-- Generating done

Ссылается https://cmake.org/pipermail/cmake/2009-March/027990.html.

Скорее всего, вы не настроили экспорт классов и / или вызовов функций.Если у вас нет экспортируемых классов / функций, Visual Studio не сгенерирует для вас библиотеку импорта.

Но добавление CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON дает тот же результат.

Как заставить MSVC генерировать lib& dll, как mingw?

1 Ответ

0 голосов
/ 05 июня 2018

Обновление cmake 2,8 до 3,4 решает проблему.

https://cmake.org/cmake/help/v3.4/release/3.4.html?highlight=windows_export_all_symbols

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...