我用C编写了一个简单的芯片-8仿真器(主要是从这获得灵感;老实说,只是用C重写它)。它使用SDL2.0,我肯定已经安装了它。
当我尝试编译文件(gcc main.c chip8.c -o chip8)时,我得到了以下一系列错误:
Undefined symbols for architecture x86_64:
"_SDL_CreateRenderer", referenced from:
_main in main-638d2a.o
"_SDL_CreateTexture", referenced from:
_main in main-638d2a.o
"_SDL_CreateWindow", referenced from:
_main in main-638d2a.o
"_SDL_GetError", referenced from:
_main in main-638d2a.o
"_SDL_Init", referenced from:
_main in main-638d2a.o
"_SDL_PollEvent", referenced from:
_main in main-638d2a.o
"_SDL_RenderClear", referenced from:
_main in main-638d2a.o
"_SDL_RenderCopy", referenced from:
_main in main-638d2a.o
"_SDL_RenderPresent", referenced from:
_main in main-638d2a.o
"_SDL_RenderSetLogicalSize", referenced from:
_main in main-638d2a.o
"_SDL_UpdateTexture", referenced from:
_main in main-638d2a.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)我非常肯定我使用了正确的#include (#include "SDL2/SDL.h")。这是我的项目结构:
chip-8
—— main.c
–– chip8.c
–– chip8.h
–– INVADERS (rom file)为什么链接器不能和这个一起工作?是否需要其他编译器标志?
发布于 2020-02-03 19:49:32
https://stackoverflow.com/questions/60046159
复制相似问题