【发布时间】:2014-12-13 23:36:51
【问题描述】:
首先我想说我意识到这已经被问了十几次了,而且我已经阅读了无数的解决方案,没有任何运气,所以我再问一次。
我正在使用 OS X Mavericks 10.9.5,使用 Sublime 3 编写并使用带有 g++ 的终端进行编译
我正在尝试编译这个简单的文件 (test.cpp)
#include <iostream>
#include <SDL2/SDL.h>
int main () {
if(SDL_Init(SDL_INIT_VIDEO)) {
std::cout << "I made it this far" << std::endl;
}
return 0;
}
编译行:
g++ test.cpp
这会返回错误:
Undefined symbols for architecture x86_64:
"_SDL_Init", referenced from:
_main in test-ebbae4.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
所以,我尝试添加很多不同的标志,-m32 只会将结果更改为 throw Undefined symbols for architecture i386: 和 ld: symbol(s) not found for architecture i386
我尝试了不同的-arch 变体,但我似乎无法让它发挥作用。也玩过-l -I 标志,但我不确定我知道他们做什么/他们如何提供帮助..
有人知道下一步该做什么吗?
EDIT :一些附加信息。我已经尝试使用 SDL2 的 .framework,它没有改变任何东西,目前我正在使用通过源代码编译安装的 SDL2。标头位于usr/local/SDL2
【问题讨论】:
标签: c++ macos g++ x86-64 sdl-2