Почему библиотека импорта .lib больше, чем .dll?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему библиотека импорта .lib больше, чем .dll?

Сообщение Anonymous »

В проекте cmake, который генерирует .dll и соответствующий .lib, я только что заметил, что .lib больше, чем .dll. Как это возможно? Разве .lib не должен быть намного меньше, чем .dll?
отладка
.lib (~870KB) and .dll (~700KB)

выпуск
.lib (~200KB) and .dll (~200KB)

CMakeLists.txt
cmake_minimum_required(VERSION 3.19.1)

project(mylib)

set (CMAKE_CXX_STANDARD 14)

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

link_libraries(${OpenCV_LIBS})

set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)

add_library(mylib SHARED mylib.cpp another_lib.cpp)

Интересно, возможно, что-то не так с CMakeLists.txt?
И почему размер .lib отличаются в отладочной и выпускной сборках?
dumpbin.exe /symbols mylib.lib
Microsoft (R) COFF/PE Dumper Version 14.29.30133.0
Copyright (C) Microsoft Corporation. All rights reserved.

Dump of file mylib.lib

File Type: LIBRARY

COFF SYMBOL TABLE
000 010175B5 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | __IMPORT_DESCRIPTOR_mylib
002 C0000040 SECT2 notype Section | .idata$2
003 00000000 SECT3 notype Static | .idata$6
004 C0000040 UNDEF notype Section | .idata$4
005 C0000040 UNDEF notype Section | .idata$5
006 00000000 UNDEF notype External | __NULL_IMPORT_DESCRIPTOR
007 00000000 UNDEF notype External | ⌂mylib_NULL_THUNK_DATA

String Table Size = 0x52 bytes

COFF SYMBOL TABLE
000 010175B5 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | __NULL_IMPORT_DESCRIPTOR

String Table Size = 0x1D bytes

COFF SYMBOL TABLE
000 010175B5 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | ⌂mylib_NULL_THUNK_DATA

String Table Size = 0x1D bytes

Summary

C3 .debug$S
14 .idata$2
14 .idata$3
8 .idata$4
8 .idata$5
C .idata$6


Подробнее здесь: https://stackoverflow.com/questions/717 ... an-the-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»