c++ - SDL:体系结构 x86_64 的 undefined symbol

标签 c++ g++ sdl x86-64

我正在为 SDL 开发一个简单的包装器,以用作一种游戏引擎。目前我有一个简单的临时主函数,如下所示:

#include <iostream>

int main(int argc, char * argv[])
{
  std::cout << "Still in development!\n";
  return 0;
}

连同包装器的一些简单函数:

#include "SDL.h"

namespace snowshoe
{
  void initialize()
  {
    SDL_Init(SDL_INIT_EVERYTHING);
  }

  void release()
  {
    SDL_Quit();
  }

  void update(SDL_Surface * screen)
  {
    SDL_Flip(screen);
  }
}

但是当我尝试编译这两个时,出现以下错误:

Undefined symbols for architecture x86_64:
  "_SDL_Flip", referenced from:
      snowshoe::update(SDL_Surface*)      in snowshoe-iru.o
  "_SDL_Init", referenced from:
      snowshoe::initialize()              in snowshoe-iru.o
  "_SDL_Quit", referenced from:
      snowshoe::release()                 in snowshoe-iru.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

在任何人询问之前,我已经包含了我需要的所有标志:

`sdl-config --cflags` -lSDL

有什么想法吗?我正在运行 OSX Mountain Lion 并从命令行(不是 Xcode)编译。

最佳答案

试试 `sdl-config --cflags --libs`

在我的系统上它给出了

-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -L/usr/lib/x86_64-linux-gnu -lSDL

比如我会

g++ fractal.cpp -O3 -fopenmp -mavx `sdl-config --cflags --libs` -o fractal_gcc_avx

关于c++ - SDL:体系结构 x86_64 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374845/

相关文章:

c++ - 为什么编译器不给出不明确的引用错误?

linux -/usr/bin/ld : client: hidden symbol `__dso_handle'

c++ - 如何同时使用 Qt 和 SDL?

c++ - SDL_SetColorKey 选择性透明!?

C++ - std::list remove_if 不释放内存?

c++ - 从结构/类读取/写入文件

c++ - boost 线程锁错误

c++ - 在 64 位服务器上构建代码时 g++ 4.6.3 崩溃

c++ - Simple Protocol Buffers 程序在使用 g++ 而不是 clang++ 编译时工作

c++ - 简单的 SDL_GetTimer() 用法 - 为什么它不起作用?