Ошибка линкера gcc C
Пытаюсь с помощью winapi проиграть звук. Вот код: '''#include <windows.h> int main() { PlaySound("bbb.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME); return 0; }'''
Я более чем уверен, что код правильный. Однако при компиляции возникает ошибка '''C:\Users\User\AppData\Local\Temp\cc7CNZmL.o:music.c:(.text+0x22): undefined reference to `__imp_PlaySoundA' collect2.exe: error: ld returned 1 exit status''' Компилирую включая -lwinmm. Такой ошибки у меня не было, пока не начал играться с mingw, устанавливать x32, x64 и т.д. Но позже всё снёс, но ошибка осталась.
Ответы (1 шт):
Гуглите
PlaySound winapi.Видите мануал.
В нем видите название библиотеки, из которой эта функция:
Requirements: Library: Winmm.lib
Добавляете в конец флажков линковщика
-lwinmm.
Если флажок там уже есть, то, вероятно вы компилируете под 32 бита, а линковщик находит libwinmm.a для 64 бит, или наоборот. Тогда - снести все версии MinGW, которые у вас стоят, и установить заново одну.