代码之家  ›  专栏  ›  技术社区  ›  JustWe

msvc不通过cmake生成lib

  •  0
  • JustWe  · 技术社区  · 7 年前

    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像mingw一样生成lib&dll?

    1 回复  |  直到 7 年前
        1
  •  0
  •   JustWe    7 年前
    推荐文章