Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 架构x86_64的未定义符号_glBegin";_Macos_Opengl_Cmake_Makefile_Undefined - Fatal编程技术网

Macos 架构x86_64的未定义符号_glBegin";

Macos 架构x86_64的未定义符号_glBegin";,macos,opengl,cmake,makefile,undefined,Macos,Opengl,Cmake,Makefile,Undefined,我试图构建一个源代码,在传递/修复了大量错误之后,我陷入了一个不知道如何修复的境地。我是构建源代码的新手,但我尝试搜索这个错误,但没有一个对我有效,尽管我不确定是否正确实现了它们。 我使用的是OSX 10.8.5和XCode 5.1.1 我正在努力制作一个cmake文件,但在75%的情况下,我得到了这个错误(简要形式): 架构x86_64的未定义符号: “_glBegin”,引用自: AlembicHolderOverride.cpp.o中的AlembicHolderOverride::draw

我试图构建一个源代码,在传递/修复了大量错误之后,我陷入了一个不知道如何修复的境地。我是构建源代码的新手,但我尝试搜索这个错误,但没有一个对我有效,尽管我不确定是否正确实现了它们。 我使用的是OSX 10.8.5和XCode 5.1.1

我正在努力制作一个cmake文件,但在75%的情况下,我得到了这个错误(简要形式):

架构x86_64的未定义符号: “_glBegin”,引用自: AlembicHolderOverride.cpp.o中的AlembicHolderOverride::draw(MHWRender::MDrawContext常量&,MUserData常量*)

这是我的CMAKEL列表的一部分:

# Fix to stop crash on OSX < 10.9
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8)

# Compiler flags
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
    # Disable some of the bullshit warnings MSVC wants to barf
    add_definitions( "-W3 -MP -D_CRT_SECURE_NO_WARNINGS -wd4005 -wd4996 -wd4305 -wd4244 -nologo" )
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif()

IF( "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin" )
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++03 -stdlib=libstdc++ -framework OpenGL")

endif()

IF( "${CMAKE_SYSTEM_NAME}" MATCHES "Linux" )
    add_definitions(-D_LINUX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fvisibility=hidden -fPIC")
endif()
#修复OSX上的崩溃<10.9
设置(CMAKE_OSX_部署_目标10.8)
#编译器标志
如果(${CMAKE\u SYSTEM\u NAME}与“Windows”匹配)
#禁用MSVC想要呕吐的一些狗屁警告
添加定义(“-W3-MP-D_CRT_SECURE_NO_WARNINGS-wd4005-wd4996-wd4305-wd4244-nologo”)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}/MP”)
endif()
如果(${CMAKE\u SYSTEM\u NAME}”匹配“Darwin”)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}-std=c++03-stdlib=libstdc++-framework OpenGL”)
endif()
如果(${CMAKE\u SYSTEM\u NAME}”匹配“Linux”)
添加定义(-D_LINUX)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}-O3-fvisibility=hidden-fPIC”)
endif()

在此之前,我非常感谢您的帮助,如果Cmakelist build flags的任何部分有错误,请随时告诉我,因为我在这方面没有经验。

您需要链接到OpenGL:

find_package(OpenGL REQUIRED)
...
add_(library|executable)(<your-target> ...)
...
target_include_directories(<your-target> PRIVATE ${OPENGL_INCLUDE_DIR})
target_link_libraries(<your-target> PRIVATE ${OPENGL_LIBRARIES})

除非您已经在CMakeLists.txt的某些遗漏部分中完成了此操作,否则您需要针对OpenGL进行链接。请看,我也尝试了x11包含(这似乎是源代码中使用的),但没有什么区别,同样的错误。这个cmakelist唯一没有的就是target_link_库,但我不确定这是否是必需的。
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
link_libraries(${OPENGL_LIBRARIES})
...
add_(library|executable)(<your-target> ...)