我有一个绘制地球的程序,它使用以下代码来读取纹理文件:
Images::RGBImage surfaceImage;
surfaceImage=Images::readImageFile("",Vrui::openFile("/home/rodrtu/Desktop/SolarSystem/land_shallow_topo_2048.png"));`
我设置它的方式只适用于我的桌面,但我希望其他人可以访问我的程序文件和图片,并能够让程序在他们的计算机上运行。我应该使用什么,而不是使用"/home/rodrtu/Desktop/SolarSystem/land_shallow_topo_2048.png"
如果我将文件夹添加到与.cpp文件相同的位置,是否应该更改我的makefile? 这是我的makefile
VRUI_MAKEDIR := /opt/local/Vrui-2.6/share/make
ifdef DEBUG
VRUI_MAKEDIR := $(VRUI_MAKEDIR)/debug
endif
INSTALLDIR := $(shell pwd)
# Set resource directory: I added this images folder to the same place as my
# .cpp file, but it still doesn't work
RESOURCEDIR = images
########################################################################
########################################################################
# Include definitions for the system environment and system-provided
# packages
include $(VRUI_MAKEDIR)/SystemDefinitions
include $(VRUI_MAKEDIR)/Packages.System
include $(VRUI_MAKEDIR)/Configuration.Vrui
include $(VRUI_MAKEDIR)/Packages.Vrui
# Set installation directory structure:
BININSTALLDIR = $(INSTALLDIR)/$(EXEDIR)
RESOURCEINSTALLDIR = $(INSTALLDIR)/$(RESOURCEDIR)
########################################################################
########################################################################
PACKAGES = MYVRUI
########################################################################
########################################################################
ALL = $(EXEDIR)/NewPlanet
.PHONY: all
all: $(ALL)
########################################################################
#'make clean'
########################################################################
.PHONY: extraclean
extraclean:
.PHONY: extrasqueakyclean
extrasqueakyclean:
# Include basic makefile
include $(VRUI_MAKEDIR)/BasicMakefile
########################################################################
########################################################################
$(EXEDIR)/NewPlanet: $(OBJDIR)/NewPlanet.o $(OBJDIR)/drawShape.o
答案 0 :(得分:0)
您应该使用Beta建议的相对路径。将“data”文件夹放在与可执行文件相同的文件夹上并使用:
Vrui::openFile("./data/land_shallow_topo_2048.png")
答案 1 :(得分:0)
文件打开应该相对于程序目录,因此您可以在源目录中为图片创建一个子目录。但请确保让用户知道放置这些图片的位置,
g-dev@g$ mkdir dat
g-dev@g$ mv pic.jpg dat/pic.jpg
然后来源:
::readImageFile("", Vrui::openFile("pic.jpg")
在CMake中添加目录:
include_directories ("${PROJECT_SOURCE_DIR/dat}")
在VS中添加目录:
(确保您为文件路径$(ProjectDir)
或$(SolutionDir)
使用提供的MSVS宏)