架构x86_64的未定义符号:"_glBegin"; [英] Undefined symbols for architecture x86_64: "_glBegin"

查看:562
本文介绍了架构x86_64的未定义符号:"_glBegin";的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建源代码,并且在传递/修复了大量错误之后,我陷入了一个我不知道如何解决的问题.我在构建源代码方面不是新手,但是我尝试搜索此错误,尽管我不确定我是否正确实现了这些方法,但是它们都没有帮助我. 我正在使用XCode 5.1.1的OSX 10.8.5

I'm trying to build a source code and after passing/fixing a ton of errors, I'm stuck at a point where I have no idea how to fix. I'm novice in building sources but I tried to search for this error and none of them worked me although I'm not sure if I implemented them correctly. I'm on OSX 10.8.5 with XCode 5.1.1

我正在努力制作 一个cmake文件,但在出现错误的情况下(75%的情况)(简短格式):

I'm striving to make a cmake file but at 75% I'm getting this error (brief form):

体系结构x86_64的未定义符号: "_glBegin",引用自: alembicHolderOverride.cpp.o中的AlembicHolderOverride :: draw(MHWRender :: MDrawContext const& ;, MUserData const *)

Undefined symbols for architecture x86_64: "_glBegin", referenced from: AlembicHolderOverride::draw(MHWRender::MDrawContext const&, MUserData const*) in alembicHolderOverride.cpp.o

这是我所拥有的cmakelist的一部分:

And this is portion of the cmakelist that I have:

# 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()

我真的很感谢事先提供的帮助,请不要犹豫,让我知道Cmakelist构建标志的任何部分是否错误,因为我对此没有真正的经验.

I really appreciate any help on this in advance, and please don't hesitate to let me know if any part of that Cmakelist build flags is wrong since I'm not really experienced in this.

推荐答案

您需要链接到OpenGL:

You need to link to 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})

(如果它是使用OpenGL公开标题的库,则可能需要PUBLIC链接)

(you may need PUBLIC linking if it's a library with public headers using OpenGL)

或传统方式:

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

这篇关于架构x86_64的未定义符号:"_glBegin";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆