体系结构x86_64“ _SDL_Init”的未定义符号

问题描述 投票:3回答:5

每次尝试编译使用SDL的程序时,它都会给我一个

"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/Applications/Xcode.app/Contents/Developer/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/testProgram
mkdir -p dist/Debug/GNU-MacOSX
g++     -o dist/Debug/GNU-MacOSX/testProgram build/Debug/GNU-MacOSX/Window.o build/Debug/GNU-MacOSX/main.o -L/Library/Frameworks/SDL.framework -L/Library/Frameworks/SDL2.framework
Undefined symbols for architecture x86_64:
  "_SDL_Init", referenced from:
      Window::startWindow() in Window.o
  "_SDL_Quit", referenced from:
      Window::exitWindow(bool) in Window.o
  "_SDL_SetVideoMode", referenced from:
      Window::startWindow() in Window.o
  "_main", referenced from:
     implicit entry/start for main executable
     (maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [dist/Debug/GNU-MacOSX/testProgramError 1
make[1]: *** [.build-conf] Error 2

我在mac-OSX上使用netbeans(不是Xcode,因为您不能制作跨平台应用程序。)>

[每次尝试编译使用SDL的程序时,它都会给我一个“ /Applications/Xcode.app/Contents/Developer/usr/bin/make” -f nbproject / Makefile-Debug.mk QMAKE = SUBPROJECTS =。 build-conf“ / ...

c++ macos netbeans sdl-2 undefined-symbol
5个回答
1
投票

将SDL库与-lSDL链接


1
投票

我浪费了很多时间试图让SDL2在Xcode中工作。尝试将Eclipse与C ++插件一起使用,在MacPorts上安装SDL2,将C ++编译器设置为包括“ / opt / local / include / SDL2”,并将“库”路径设置为“ / opt / local / lib”,并将“库”设置为“ SDL2” ”。我在OSX Sierra上,因此SDL下载到与Mavericks等早期版本不同的路径。您可以使用用于头文件的终端命令“ sdl2-config --cflags”和用于库的“ sdl2-config --libs”找到补丁。我不喜欢破解库的核心文件,所以我不会弄混makefile之类的东西。希望有帮助。


0
投票

尝试在编译命令中添加以下标志:


0
投票

我没有使用osx,因此可能有所不同。但是对于Linux,我们需要在链接器的参数中添加`sdl2-config --cflags --libs`


0
投票

您可能必须在MacOS上指定整个路径:

© www.soinside.com 2019 - 2024. All rights reserved.