GCC pod Windows
Ostatnio zmodyfikowano 2017-07-13 20:11
ParseThisCode Temat założony przez niniejszego użytkownika |
GCC pod Windows » 2017-07-10 02:53:08 #include <cstdio>
int main() { printf( "x" ); }
g++.exe -Os -std=c++14 -c C:\Users\Ja\Documents\workspace\test\main.cpp -o obj\Release\main.o g++.exe -o bin\Release\test.exe obj\Release\main.o -s Output file is bin\Release\test.exe with size 38.00 KB Process terminated with status 0 (0 minute(s), 0 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
---------------------------------------------------------- #include <iostream>
int main() { std::cout << "x" << std::endl; }
g++.exe -Os -std=c++14 -c C:\Users\Ja\Documents\workspace\test\main.cpp -o obj\Release\main.o g++.exe -o bin\Release\test.exe obj\Release\main.o -s Output file is bin\Release\test.exe with size 16.00 KB Process terminated with status 0 (0 minute(s), 0 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Jestem ciekaw dlaczego tak sie dzieje tylko pod Windowsem? |
|
Elaine |
» 2017-07-13 20:11:35 MinGW-w64 zawiera statycznie linkowaną implementację printf, ponieważ ta z msvcrt.dll nie jest do końca zgodna ze standardem. Standardowe strumienie natomiast są implementowane w libstdc++, które jest domyślnie linkowane dynamicznie. Na innych platformach normalnie printf z libc.so jest zgodne ze standardem, więc może być użyte, dlatego wtedy i jedno, i drugie jest linkowane dynamicznie, więc rozmiar pliku wykonywalnego jest porównywalny. |
|
« 1 » |