나는 답을 발견했다. 다음 명령이 올바르게 컴파일되었습니다. include 문을 ...
#include<SDL2/SDL.h>
and the correct compile command is...
c++ -o helloworld helloWorld.cpp -framework SDL2
g ++로 변경해야했습니다. 내 시스템에서 C++과 g ++는 동일한 gnu 컴파일러에 대한 심볼릭 링크이며 시스템에 설치 한 최신 버전입니다.
-L 옵션은 유닉스 링커 옵션이며 MAC에서 작동하지 않습니다. dev의 GCC에 대한 친절한 - 프레임 워크의 형태로 MAC 특정 링커 옵션을 포함했다. 이들은 도서관을 어디에 저장하고 싶은지, 맥의 전통을 따르고 있습니다. 여러 프레임 워크를 쉼표로 구분하여 연결할 수 있습니다./라이브러리/프레임 워크는 라이브러리에이 기본 검색 위치는 다음 컴파일 할 때 내 소스가
#include<SDL2_mixer/SDL_mixer.h>
을 가지고 그래서 예를 들어 나는 또한 한 SDL2, SDL2_mixer을 -framework 할 수 있습니다. 서술문은 크로스 플랫폼하게 호환 및 맥 GNU 링커 내가
#include<SDL2/SDL.h>
을 말하는 경우에 해당 헤더가 /Library/Frameworks/SDL2.framework/Headers
여전히
-ipath 옵션에서 찾을 수 있다는 것을 알고 있습니다 포함 Mac에서 작동하며 유닉스에서 작동하는 것처럼 헤더 및 소스 파일에 대한 대체 검색 위치를 전달하는 데 사용할 수 있습니다.
가능한 중복 [Linker order - GCC] (http://stackoverflow.com/questions/45135/linker-order-gcc) –
중복되지 않도록주의하십시오. 문제가보고 된 것이 아니므로 그것이 실제로 문제가된다고 가정하면 예제에서 알 수 있습니다. 그렇다면 이것을 지적함으로써 사용자를 도울 수 있으며 질문을 삭제할 수 있습니다. – mydoghasworms
그의 질문은 하나의 라이브러리 만 사용하려고하는 여러 링크 된 라이브러리의 순서와 관련이 있습니다. – citizen2191629