gpt4 book ai didi

c++ - ld : symbol(s) not found for architecture

转载 作者:行者123 更新时间:2023-11-30 03:58:23 24 4
gpt4 key购买 nike

首先,我想说我知道这个问题已经被问过十几次了,而且我已经阅读了无数的解决方案,但都没有任何运气,所以我再次提问。

我正在使用 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 仅将结果更改为抛出 Undefined symbols for architecture i386:ld:找不到体系结构 i386 的符号

我已经尝试了不同的 -arch 变体,但我似乎无法让它工作。也玩过 -l -I 标志,但我不确定我知道他们做什么/他们如何提供帮助..

有人知道下一步该做什么吗?

编辑:一些附加信息。我已经尝试使用 SDL2 的 .framework,这没有改变任何东西,目前我正在使用通过源代码编译安装的 SDL2。 header 位于 usr/local/SDL2

最佳答案

g++ test.cpp

您还应该指定 SDL 库:

g++ 测试.cpp -lsdl2

如果编译器驱动程序不知道它,您可能需要包含一个路径:

g++ test.cpp -L/path/to/the/library -lsdl2


关于c++ - ld : symbol(s) not found for architecture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464802/

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