Если вы внимательно прочитаете вывод компилятора, вы увидите это предупреждение:
предупреждение: игнорирование комментария к прагме [-Wunknown-pragmas]
Это означает, что ваш компилятор (GCC) не поддерживает использование вашего кода #pragma comment
, и поэтому winmm.lib
в итоге не будет связан с вашим окончательным исполняемым файлом, что приведет к последующей ошибке компоновщика:
неопределенная ссылка на `_imp__mciSendStringA @ 16 '
Дело не в том, что компоновщик не может найти winmm.lib
, дело в том, что компоновщику не сказано использовать winmm.lib
во-первых.
#pragma
используется для вызова специфичных для компилятора команд .Не все компиляторы реализуют #pragma comment
.VC ++ делает (и некоторые другие, как BCC32 / 64), но GCC нет.Другой вопрос, на который вы ссылались, был помечен visual-c++
, поэтому #pragma comment
было уместно в этом случае.
В вашем случае вам придется соответствующим образом скорректировать процесс сборки, чтобы использовать другой способ сообщить компоновщику:используйте winmm.lib
.Это делается в GCC с помощью опции -l
при вызове компоновщика, например, -lwinmm
.