CMake-设置将库添加到共享会导致致命错误U1073:don';我不知道怎么做

CMake-设置将库添加到共享会导致致命错误U1073:don';我不知道怎么做,cmake,Cmake,这是我的根项目CMakeLists.txt: cmake_minimum_required(VERSION 3.16) project(Vibranium_Core) set(CMAKE_CXX_STANDARD 14) set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib) set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib) find_pa

这是我的根项目
CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(Vibranium_Core)

set(CMAKE_CXX_STANDARD 14)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/lib)

find_package(Boost 1.72.0)

if(NOT Boost_FOUND)
    message(FATAL_ERROR "Could not find boost!")
endif()
include_directories(${Boost_INCLUDE_DIR})

if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
    message(STATUS "Target is 64 bits")
    if (WIN32)
        set(WINXXBITS Win64)
    endif(WIN32)
else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
    message(STATUS "Target is 32 bits")
    if (WIN32)
        set(WINXXBITS Win32)
    endif(WIN32)
endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package(MySQL REQUIRED)

include_directories(${MYSQL_INCLUDE_DIR})

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Common)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/WorldServer)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/AuthServer)

add_subdirectory(Tests)

set_target_properties(VibraniumCoreTests PROPERTIES EXCLUDE_FROM_ALL TRUE)
set_target_properties(gtest PROPERTIES EXCLUDE_FROM_ALL TRUE)
set_target_properties(gmock PROPERTIES EXCLUDE_FROM_ALL TRUE)
set_target_properties(gtest_main PROPERTIES EXCLUDE_FROM_ALL TRUE)
set_target_properties(gmock_main PROPERTIES EXCLUDE_FROM_ALL TRUE)

set_target_properties(
        Common WorldServer AuthServer
        PROPERTIES
        ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
这是我的
公共
库CMakeLists.txt:

add_library(
    Common
        SHARED
        Config.cpp
        Config.h
        Logger.cpp
        Logger.h
        Database/DatabaseLoader.cpp
        Database/DatabaseLoader.h
        Database/MySQLConnection.h
        Database/MySQLConnection.cpp
        Database/MySQLTable.h
        Database/MySQLTable.cpp
    )
if(WIN32)
    # Add the MySQL include directories to this target.
    message(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64/mysqlcppconn8-2-vs14.dll)
    target_include_directories(Common PUBLIC
            ${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include
            )

    # Link the MySQL library to your executable.
    target_link_libraries(Common PUBLIC
            ${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64/vs14/mysqlcppconn8.lib
            )
else()
    target_link_libraries(Common LINK_PUBLIC ${MYSQL_LIBRARY} mysqlcppconn)
endif()
    target_include_directories(Common PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
当我将
Common-SHARED
更改为
Common-STATIC
时,一切正常。但是,为什么我无法将其设置为
SHARED
接收以下错误:

[ 46%] Built target Common
NMAKE : fatal error U1073: don't know how to make 'bin\lib\Common.lib'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.

你能告诉我为什么我会收到这个错误吗?

闻起来好像你忘了从
公共库导出符号。如果不导出符号,则不会创建导入文件(
.lib
)。请您回答我该怎么做,好吗?只需通过谷歌搜索dllexport/dllimport,网络上有很多示例。