c - 使用sdl2在gitlab中构建管道失败

标签 c makefile gitlab gitlab-ci sdl-2

我试图确保我的程序在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)


我的管道错误:

enter image description here

我的功能

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/

相关文章:

c - C中的strtok和strtok_r有什么区别?

c - 静态矩阵或动态分配矩阵

android - AOSP - Android 6 Marshmallow 编译 - make : *** [run_soong] Error 126

亚搏体育appGitLab CI : MERGE_REQUEST_EVENT not triggered by update?

gitlab - 部署作业后如何在作业中获取环境 URL?

c - 如何在 scanf() 中期望不同的数据类型?

c - 矩阵中的多线程搜索,行索引未正确显示

c - 在 Makefile 中添加命令的运行时参数

c - Makefile 没有制作所有目标

gitlab - 如何在 gitlab-ci 运行期间修复 "No such file or directory"