首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc为什么不链接一个SDL2.0C项目?(macOS)

gcc为什么不链接一个SDL2.0C项目?(macOS)
EN

Stack Overflow用户
提问于 2020-02-03 19:45:41
回答 1查看 381关注 0票数 0

我用C编写了一个简单的芯片-8仿真器(主要是从获得灵感;老实说,只是用C重写它)。它使用SDL2.0,我肯定已经安装了它。

当我尝试编译文件(gcc main.c chip8.c -o chip8)时,我得到了以下一系列错误:

代码语言:javascript
复制
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")。这是我的项目结构:

代码语言:javascript
复制
chip-8
—— main.c
–– chip8.c
–– chip8.h
–– INVADERS (rom file)

为什么链接器不能和这个一起工作?是否需要其他编译器标志?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-03 19:49:32

为什么链接器不能和这个一起工作?是否需要其他编译器标志?

是的,您需要告诉链接器要链接哪个库,例如:

代码语言:javascript
复制
-lSDL2

请参阅gcc如何使用SDL?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60046159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档