FLTK - Mac iOS图像不显示

问题描述 投票:1回答:1

我在iOS Mojave 10.14.6上使用FLTK库(1.3.5版本):我写了这个简单的程序。

#include <stdlib.h>
#include <FL/Fl.H>
#include <FL/platform.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_JPEG_Image.H>
#include <FL/Fl_PNG_Image.H>
#include <FL/Fl_Box.H>

int main(int argc, char **argv) {

    Fl_Window *G_win = 0;
    G_win = new Fl_Window(650,650,"test");

    Fl_Box* BG = new Fl_Box(0,0,650,650);
    Fl_PNG_Image *bg = new Fl_PNG_Image("scheme.png");
    BG->image(bg);

    Fl_Box* text = new Fl_Box(250,20,150,20,"There should be an image down below. Is it so?");

    G_win->end();
    G_win->show(argc, argv);
    return Fl::run();
}

然后我用下面的Makefile编译它(找到了 此处):

CC  = $(shell fltk-config --cc)
CXX = $(shell fltk-config --cxx)

CFLAGS   = $(shell fltk-config --cflags) -Wall -O3 -I/other/include/paths...
CXXFLAGS = $(shell fltk-config --cxxflags) -Wall -O3 -I/other/include/paths...

LINKFLTK = $(shell fltk-config --ldstaticflags)
LINKFLTK_GL = $(shell fltk-config --use-gl --ldstaticflags)
LINKFLTK_IMG = $(shell fltk-config --use-images --ldstaticflags)

STRIP      = strip
POSTBUILD  = fltk-config --post # Required on OSX, does nothing on other platforms, so safe to call

all: myApp

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

myApp:  main.o 
    $(CXX) -o $@ main.o  $(LINKFLTK_IMG) $(LINKFLTK_GL)
    $(STRIP) $@
    $(POSTBUILD) $@  # only required on OSX, but call it anyway for portability

我得到的是二进制 myApp 和应用 myApp当我在shell中输入.myApp时,一切都很正常(上图),而双击图标却没有显示图像(下图)。

Executing the binary double clicking on the app

我在编译过程中没有出现任何错误,也没有警告。Makefile有什么问题吗?是Mac iOS的问题吗?

c++ image macos makefile fltk
1个回答
1
投票

我想之所以如此,只是因为FLTK试图从 当前 文件夹。当你执行 ./myApp 在shell中,它运行在PNG文件所在的同一个文件夹中。然而,当你双击时,你的当前路径不知道在哪里。

最简单的 "修复 "是使用一个绝对路径(比如 "homeyouruserworkmyappscheme.png"),重新编译应用程序,然后运行它。- 如果你提供了文件的完整路径,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.