首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OpenSG渲染

使用OpenSG渲染
EN

Stack Overflow用户
提问于 2011-03-10 01:03:45
回答 1查看 689关注 0票数 0

我这里有点状况。我正在尝试和OpenSG一起工作。我下载了这个包,并按照安装文件中的说明进行了安装。然后我也安装了它的系统依赖库。现在我尝试构建它的教程,但它显示了错误。它显示glut未配置,但我在配置glut库的同时启用了它,并安装了所有依赖的包和库。我不明白问题出在哪里。尝试制作OpenSG教程时显示的错误如下:

代码语言:javascript
复制
ani@anilap:~/OpenSG/Tutorials$ make
g++  Warning GLUT not configured, ignoring request -D_GNU_SOURCE -DQT_CLEAN_NAMESPACE -D_OSG_HAVE_CONFIGURED_H_ -DQT_NO_XINERAMA -DQT_NO_XRENDER -DQT_NO_XFTFREETYPE -DQT_NO_XKB - DQT_NO_SM_SUPPORT -DQT_NO_IMAGEIO_MNG -DQT_NO_IMAGEIO_JPEG -DQT_NO_STYLE_AQUA - DQT_NO_STYLE_MAC -DQT_NO_STYLE_INTERLACE -DQT_NO_STYLE_COMPACT -ansi -use_readonly_const -ftemplate-depth-100 -g -DOSG_DEBUG -I/usr/local/include 01hello.cpp  Warning GLUT not configured, ignoring request -g -L/usr/local/lib/dbg -lOSGWindowX -lOSGSystem -lOSGBase -     lGLU -lGL -lXmu -lXi -lXt -lX11 -lpthread -ldl -lm -L/usr/X11R6/lib -o 01hello 
g++: Warning: No such file or directory
g++: GLUT: No such file or directory
g++: not: No such file or directory
g++: configured,: No such file or directory
g++: ignoring: No such file or directory
g++: request: No such file or directory
g++: Warning: No such file or directory
g++: GLUT: No such file or directory
g++: not: No such file or directory
g++: configured,: No such file or directory
g++: ignoring: No such file or directory
g++: request: No such file or directory
In file included from /usr/include/c++/4.4/ext/hash_map:60,
             from /usr/local/include/OpenSG/OSGWindow.h:53,
             from /usr/local/include/OpenSG/OSGGeometry.h:48,
             from /usr/local/include/OpenSG/OSGSimpleGeometry.h:49,
             from 01hello.cpp:19:
/usr/include/c++/4.4/backward/backward_warning.h:28:2: warning: #warning This file    includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file   backward_warning.h. To disable this warning use -Wno-deprecated.
01hello.cpp: In function ‘int main(int, char**)’:
01hello.cpp:48: error: ‘GLUTWindowPtr’ was not declared in this scope
01hello.cpp:48: error: expected ‘;’ before ‘gwin’
01hello.cpp:49: error: ‘gwin’ was not declared in this scope
make: *** [01hello] Error 1
ani@anilap:~/OpenSG/Tutorials$ 

如果有人能帮我找到解决方案,我将不胜感激。

本教程的makefile如下所示:

代码语言:javascript
复制
# trivial makefile for OpenSG tutorials

# use debug or opt libs?
LIBTYPE ?= dbg

# set the path to the installed osg-config executable here
# if you don't set it, the makefile tries to guess
# e.g. if you installed in /usr/local:
# OSGCONFIG := /usr/local/bin/osg-config


# *****************************************************
# you shouldn't have to change anything after this line
# *****************************************************

# try to guess the OSGCONFIG path

OSGCONFIG := notset

# use OSGPOOL if set

OSGPOOL ?= ..

# try to get configured information first, will not work if more 
# than one system is configured from one dir. Just for the 1.0

OSGINSTALLPREFIX := notset

PREFIXSUFFIX := $(shell $(OSGPOOL)/CommonConf/config.guess)
-include .prefix.$(PREFIXSUFFIX)

ifneq ($(OSGINSTALLPREFIX),notset)
    OSGCONFIG := $(OSGINSTALLPREFIX)/bin/osg-config
endif

ifneq ($(OSGROOT),)
    OSGCONF := $(wildcard $(OSGROOT)/bin/osg-config)

    ifneq ($(OSGCONF),)
    OSGCONFIG := $(OSGCONF)
endif

endif

# if configure info wasn't found, maybe a Builds/* install?
ifeq ($(OSGCONFIG),notset)
    INSTALLROOT := $(wildcard ../Builds/$(shell ../CommonConf/config.guess)-*)
    OSGCONF := $(wildcard $(INSTALLROOT)/bin/osg-config)
    ifneq ($(OSGCONF),)
        OSGCONFIG := $(OSGCONF)
    endif
endif

# maybe we can find it in the path?
ifeq ($(OSGCONFIG),notset)
    OSGCONF := \
       $(shell if which osg-config >/dev/null 2>&1; then which osg-config; fi )  
    OSGCONF := $(strip $(OSGCONF))
    ifneq ($(OSGCONF),)
        OSGCONFIG := $(OSGCONF)
    endif
endif

# ok, give up
ifeq ($(OSGCONFIG),notset)
    $(error Can't find osg-config, please configure the Makefile or \
            add it to your PATH)
endif

### System dependencies ###############################################

# Set the system we're running on
SYSTEM := $(shell uname)

# which extension to be used for executables
EXEEXT :=

# which extension to be used for executables
ADDLIB :=

# be very careful with these lines. There needs to be a space after the Unix
# lines and nothing after the win lines!!

ifeq ($(SYSTEM),IRIX)
        CCOUT  := -o 
        LDOUT  := -o 
    LINK   := 
    ADDLIB := X
endif
ifeq ($(SYSTEM),IRIX64)
        CCOUT  := -o 
        LDOUT  := -o 
    LINK   := 
    ADDLIB := X
endif
ifeq ($(SYSTEM),Linux)
        CCOUT  := -o 
        LDOUT  := -o 
    LINK   := 
    ADDLIB := X
endif
ifeq ($(findstring WIN,$(SYSTEM)),WIN)
        OS := WIN32
        CCOUT := -Fo
        LDOUT := /out:
    LINK   := -link
    EXEEXT :=.exe
endif
ifeq ($(SYSTEM),HP-UX)
        CCOUT  := -o 
        LDOUT  := -o 
    LINK   := 
    ADDLIB := X
endif
ifeq ($(SYSTEM),Darwin)
        CCOUT := -o 
        LDOUT := -o 
    LINK  := 
endif

# Var settings

ifeq ($(findstring WIN,$(SYSTEM)),WIN)
CC = "$(shell $(OSGCONFIG) --compiler)"
else
CC = $(shell $(OSGCONFIG) --compiler) 
endif

CCFLAGS = $(shell $(OSGCONFIG) --cflags --$(LIBTYPE) Base System $(ADDLIB) GLUT)

LDFLAGS = $(LINK) $(shell $(OSGCONFIG) --libs --$(LIBTYPE) Base System $(ADDLIB) GLUT)


# all tutorials in this directory

TUTS :=  $(wildcard [0-9][0-9]*.cpp) 
PROGS := $(TUTS:.cpp=$(EXEEXT)) 

ifeq ($(findstring WIN,$(SYSTEM)),WIN)
TUTS := $(filter-out %X.cpp, $(TUTS))
endif

# program dependencies

default:    $(PROGS)

# make rules

.PHONY: clean Clean

clean:
    rm -f  *.o 
    rm -f  *.obj 
rm -rf ii_files
rm -f *.pdb
rm -f *.ilk
rm -f *.idb

Clean: clean
    rm -f $(PROGS) 

%.o: %.cpp
    $(CC) -c $(CCFLAGS) $<

%: %.o
    $(CC) $(LDOUT)$@ $< $(LDFLAGS)

%$(EXEEXT): %.cpp
    $(CC) $(CCFLAGS) $< $(LDFLAGS) $(LDOUT)$@ 

当我再次尝试配置和编译opensg,并尝试编写本教程时,它显示了以下错误,这与之前的错误略有不同。我以前遇到过这个错误,但它已经改变了。错误:

代码语言:javascript
复制
ani@anilap:~/OpenSG/Tutorials$ make
g++  -D_GNU_SOURCE -DQT_CLEAN_NAMESPACE -DOSG_WITH_GLUT -DOSG_WITH_TIF -DOSG_WITH_JPG -DOSG_WITH_PNG -D_OSG_HAVE_CONFIGURED_H_ -DQT_NO_XINERAMA -DQT_NO_XRENDER -DQT_NO_XFTFREETYPE -DQT_NO_XKB -DQT_NO_SM_SUPPORT -DQT_NO_IMAGEIO_MNG -DQT_NO_IMAGEIO_JPEG -DQT_NO_STYLE_AQUA -DQT_NO_STYLE_MAC -DQT_NO_STYLE_INTERLACE -DQT_NO_STYLE_COMPACT -ansi -use_readonly_const -ftemplate-depth-100 -g -DOSG_DEBUG -DOSG_WITH_GLUT -DOSG_WITH_TIF -DOSG_WITH_JPG -DOSG_WITH_PNG -I/usr/local/include 01hello.cpp  -g -L/usr/local/lib/dbg -lOSGWindowGLUT -lOSGWindowX -lOSGSystem -lOSGBase -ltiff -ljpeg -lpng -lz -lglut -lGLU -lGL -lXmu -lXi -lXt -lX11 -lpthread -ldl -lm -L/usr/X11R6/lib -o 01hello 
In file included from /usr/include/c++/4.4/ext/hash_map:60,
             from /usr/local/include/OpenSG/OSGWindow.h:53,
             from /usr/local/include/OpenSG/OSGGeometry.h:48,
             from /usr/local/include/OpenSG/OSGSimpleGeometry.h:49,
             from 01hello.cpp:19:
/usr/include/c++/4.4/backward/backward_warning.h:28:2: warning: #warning This file  includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file   backward_warning.h. To disable this warning use -Wno-deprecated.
/usr/bin/ld: cannot find -lXmu
collect2: ld returned 1 exit status
make: *** [01hello] Error 1
ani@anilap:~/OpenSG/Tutorials$ 

17-03-2011在安装缺少的库之后,我尝试制作教程时遇到的新错误:

代码语言:javascript
复制
ani@anilap:~/OpenSG$ cd Tutorials/
ani@anilap:~/OpenSG/Tutorials$ make

g++  -D_GNU_SOURCE -DQT_CLEAN_NAMESPACE -DOSG_WITH_GLUT -DOSG_WITH_TIF
-DOSG_WITH_JPG - DOSG_WITH_PNG -D_OSG_HAVE_CONFIGURED_H_ -DQT_NO_XINERAMA -DQT_NO_XRENDER -DQT_NO_XFTFREETYPE -DQT_NO_XKB -DQT_NO_SM_SUPPORT -DQT_NO_IMAGEIO_MNG -DQT_NO_IMAGEIO_JPEG -DQT_NO_STYLE_AQUA -DQT_NO_STYLE_MAC -DQT_NO_STYLE_INTERLACE -DQT_NO_STYLE_COMPACT -ansi -use_readonly_const -ftemplate-depth-100 -g -DOSG_DEBUG -DOSG_WITH_GLUT -DOSG_WITH_TIF -DOSG_WITH_JPG -DOSG_WITH_PNG -I/usr/local/include 18opengl_slave.cpp  -g -L/usr/local/lib/dbg -lOSGWindowGLUT -lOSGWindowX -lOSGSystem -lOSGBase -ltiff -ljpeg -lpng -lz -lglut -lGLU -lGL -lXmu -lXi -lXt -lX11 -lpthread -ldl -lm -L/usr/X11R6/lib -o 18opengl_slave 
    In file included from /usr/include/c++/4.4/ext/hash_map:60,
                 from /usr/local/include/OpenSG/OSGWindow.h:53,
                 from /usr/local/include/OpenSG/OSGGeometry.h:48,
                 from /usr/local/include/OpenSG/OSGSimpleGeometry.h:49,
                 from 18opengl_slave.cpp:21:
    /usr/include/c++/4.4/backward/backward_warning.h:28:2: warning: #warning This file  includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use
-Wno-deprecated. 
    18opengl_slave.cpp:70: error: ‘<anonymous>’ has incomplete type
    18opengl_slave.cpp:70: error: invalid use of ‘GLvoid’
    18opengl_slave.cpp: In function ‘GLvoid InitGL(GLsizei, GLsizei)’:
    18opengl_slave.cpp:70: error: too few arguments to function ‘GLvoid LoadGLTextures(<type error>)’
    18opengl_slave.cpp:92: error: at this point in file
    18opengl_slave.cpp: At global scope:
    18opengl_slave.cpp:310: error: ‘<anonymous>’ has incomplete type
    18opengl_slave.cpp:310: error: invalid use of ‘GLvoid’
    18opengl_slave.cpp: In function ‘int main(int, char**)’:
    18opengl_slave.cpp:486: error: invalid conversion from ‘GLvoid (*)(<type error>)’ to ‘void (*)()’
    18opengl_slave.cpp:486: error:   initializing argument 1 of ‘void glutDisplayFunc(void (*)())’
    make: *** [18opengl_slave] Error 1
    ani@anilap:~/OpenSG/Tutorials$
EN

回答 1

Stack Overflow用户

发布于 2011-03-10 20:59:12

看这一行:

代码语言:javascript
复制
/usr/bin/ld: cannot find -lXmu

这意味着您错过了系统上的一个库。该库的名称是libxmu.您需要为其安装开发包。如果您使用的是ubuntu,可以使用以下命令:

代码语言:javascript
复制
apt-get install libxmu-dev
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5249384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档