Двоичные файлы, созданные с помощью Cygwin, всегда зависят от cygwin1.dll
. Однако, если вы хотите избежать этого, используйте опцию компоновщика -mno-cygwin
. Таким образом, вы убедитесь, что не будет никакой зависимости от библиотеки времени выполнения cygwin, которую вам нужно поставлять вместе с приложением.
MinGW также имеет некоторые локальные зависимости. В частности, libgcc_s_dw2-1.dll
(зависит от того, какой тип размотки используется в вашей цепочке инструментов) и mingwm10.dll
. Чтобы избавиться от них, используйте опции -static-libgcc
и -mthreads
для своего компоновщика. Обратите внимание, что исключения C ++ зависят от этой опции.
Небольшая заметка, однако. Ваш вопрос - "Можно ли скомпилировать c ++ без какой-либо библиотеки?" неверно, поскольку всегда некоторые зависимости от библиотек (если вы не создаете двоичный файл для barebone-оборудования без ОС), например user32.dll для Windows. Конечно, ни Cygwin, ни MinGW не подходят для этого.