我试图确保我的程序在gitlab中编译,但是由于某种原因,在gitlab中编译时在sdl2中存在链接错误,而我在本地机器中没有该错误:
.gitlab-ci.yml
before_script:
- apt-get update -qq
- apt-get install -y build-essential
- apt-get install -y libsdl2-dev
- apt-get install -y libsdl2-gfx-dev
- apt-get install -y libsdl2-image-dev
- apt-get install -y libsdl2-ttf-dev
build:
stage: build
script:
- make
这是我的makefile
CC = gcc
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
CFLAGS = -Wall -Wextra `sdl2-config --cflags`
LDFLAGS =`sdl2-config --libs` -lSDL2_image -lSDL2_gfx -lm
EXEC = circles
$(EXEC): $(OBJS)
$(CC) $^ $(LDFLAGS) -o $(EXEC)
%.o: %.c
$(CC) $< $(CFLAGS) -c -o $@
.PHONY: clean
clean:
rm -f $(OBJS) $(EXEC)
我的管道错误:
我的功能
void Playmusic(struct Application *application){
//load WAV file
SDL_LoadWAV("../assets/courtesy.wav", &application->wavSpec, &application->wavBuffer, &application->wavLength);
// open audio device
application->deviceId = SDL_OpenAudioDevice(NULL, 0, &application->wavSpec, NULL, 0);
// play audio
SDL_QueueAudio(application->deviceId , application->wavBuffer, application->wavLength);
SDL_PauseAudioDevice(application->deviceId , 0);
}
我究竟做错了什么?它之所以怪异,是因为它只说了这个功能。
最佳答案
在SDL 2.0.4中添加了SDL_QueueAudio()
,请确保apt
正在拉该版本(或更高版本)。
关于c - 使用sdl2在gitlab中构建管道失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59509145/