减少直接使用GCC创建的DLL的大小

减少直接使用GCC创建的DLL的大小,gcc,dll,size,reduce,Gcc,Dll,Size,Reduce,Hi1我刚刚用GCC创建了一个DLL。它只包含以下简单功能: extern "C" { char* Message() { return (char*)"Cool"; } } 结果文件的大小是42 Kb,我不明白为什么它这么大,而一个创建并显示GUI窗口的简单可执行文件只有8 Kb。有没有办法减小共享库的大小?为什么它这么大?谢谢 更新 如果我用Code::Blocks创建同一个文件,它只有24KB。我想知道CB是通过什么方式创建的,以达到这样的规模 更新 这很

Hi1我刚刚用GCC创建了一个DLL。它只包含以下简单功能:

extern "C" {
    char* Message() {
        return (char*)"Cool";
    }
}
结果文件的大小是42 Kb,我不明白为什么它这么大,而一个创建并显示GUI窗口的简单可执行文件只有8 Kb。有没有办法减小共享库的大小?为什么它这么大?谢谢

更新

如果我用Code::Blocks创建同一个文件,它只有24KB。我想知道CB是通过什么方式创建的,以达到这样的规模

更新

这很重要,因为我想知道我的库不包含不必要的代码。创建DLL的GCC命令是:

gcc -c Source/MyLib.cpp -s -Os -nostartfiles -nostdlib -nodefaultlibs -o MyLib.o
ar  rcs libMylib.a MyLib.o
gcc -shared -o MyLib.dll MyLib.o

-s
添加到链接状态(
gcc-s-shared-o MyLib.dll MyLib.o

为什么这对您很重要?你给了
gcc
什么选项(
gcc-Wall-O3
?)为什么不使用
gcc-fPIC-shared-Os-Source/MyLib.cpp-o MyLib.dll
)编译呢?是的,谢谢。然而,同样的大小。而且,在我的x86上,-fPIC被忽略了。你是老板。从42Kb到8Kb。谢谢大家!