gpt4 book ai didi

c - 可执行文件仅在终端 C Allegro 打开时有效

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:25 24 4
gpt4 key购买 nike

我有一个非常奇怪的问题,我正在开发一个 Allegro 游戏,我在终端上编译并在 XCode 代码查看器(它就像一个文本编辑器)上编码,一切都很顺利,但是当我加载图像并运行时单击它的可执行文件给我错误“无法加载图像”,有趣的事实是,当我通过终端(./executablename)打开可执行文件时,它完全按照它应该的方式工作!我真的不明白为什么,有人告诉我错误可能与权限有关,但我对 mac 了解不多......也不知道如何解决它。

这是我的代码:

#include <stdio.h>

//puxa a biblioteca allegro
#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>
#include <allegro5/allegro_image.h>

//fixo de tamanho de tela
#define LAR 1280
#define ALT 720

int main(int argc, char *argv[]){
//inicialização da janela
ALLEGRO_DISPLAY *janela = NULL;

ALLEGRO_BITMAP *imagem = NULL;

//inicia allegro, caso erro da a msg
if(!al_init()) {
fprintf(stderr, "failed to initialize allegro!\n");
return -1;
}

al_get_standard_path(ALLEGRO_RESOURCES_PATH);

//cria a janela
janela = al_create_display(LAR, ALT);
if(!janela) {
fprintf(stderr, "failed to create display!\n");
return -1;
}

//inicia primitivos
//al_init_primitives_addon();

//inicia a extenção de imagens
if(!al_init_image_addon()){
fprintf(stderr, "Falha ao carregar image addon");
}

//carrega imagem
imagem = al_load_bitmap("imagem.jpg");
if (!imagem){
fprintf(stderr, "Falha ao carregar imagem!\n");
return -1;
}

//preenche a tela com alguma cor
al_clear_to_color(al_map_rgb(0,0,0));

//desenha imagem
al_draw_bitmap(imagem, LAR/2 - (al_get_bitmap_width(imagem)/2),
ALT/2 - (al_get_bitmap_height(imagem)/2), 0);

//atualiza a tela
al_flip_display();

//pausa a execução
al_rest(10.0);

//destroi imagem
al_destroy_bitmap(imagem);

//destroi variavel janela
al_destroy_display(janela);

return 0;
}

最佳答案

我对 XCode 或 macs 都不熟悉,但是......这看起来像是我过去在 Visual Studio 中遇到的一个非常常见的问题:

当您从调试器或 IDE 环境中执行程序时,IDE 会从与二进制文件所在目录不同的目录(例如,项目/解决方案文件所在的目录)启动程序。因此,当您尝试定位图像时,它会失败,因为它不在文件夹中。

尝试将图像移动到该应用程序的项目文件附近或工作区中的其他目录中,直到它加载,或者在代码编辑器中修改环境变量,以便二进制文件的启动文件夹是您存储图像的文件夹。

关于c - 可执行文件仅在终端 C Allegro 打开时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com