【问题标题】:How do I configure an OpenGL makefile for Windows?(from Linux)如何为 Windows 配置 OpenGL makefile?(来自 Linux)
【发布时间】:2012-02-23 11:13:51
【问题描述】:

这是生成文件:

CC      = g++
LD      = g++
CFLAGS  = -I/usr/X11R6/include -I. -c
LDFLAGS = -L/usr/X11R6/lib -lglut -lGLU -lGL -lXi -lXmu -lXt -lXext -lX11 -lSM -lICE -lm

INCS = 

OBJS = x.o

all: x

clean:
    rm -rf $(OBJS) x

cgRender.o: $(INCS) x.cpp
    $(CC) $(CFLAGS) x.cpp -o x.o

cgRender: $(OBJS)
    $(LD) $(OBJS) -o x $(LDFLAGS)

它是为 Linux 制作的,但我正在尝试在 Windows 上编译它。

我不断收到的错误如下所示:

c:/strawberry/c/bin/*directories that don't exist/i686-w64-mingw32/bin/ld.exe: cannot find -lGlu/-lGl/-lXi/etc....

如果有人可以在这里帮助我,我将非常感激。谢谢

【问题讨论】:

    标签: windows linux opengl makefile


    【解决方案1】:

    LDFLAGS = -L/usr/X11R6/lib -lglut -lGLU -lGL -lXi -lXmu -lXt -lXext -lX11 -lSM -lICE -lm

    在 Windows 中,您通常不会链接到 X11 库,因此请删除所有 -lX…-lSM-lICE。同时删除 X11 包含和库目录参数-I/usr/X11R6/include-L/usr/X11R6/lib

    请注意,这个 Makefile 必须非常旧,因为这些库和目录都不需要向编译器或链接器明确提及,因为 GLUT 将库作为动态库依赖项拉取。

    【讨论】:

    • 包含这些库不是意味着代码中引用了它们的函数,这意味着不仅makefile,而且代码都需要移植到Windows环境?
    • @eriktous:如果 OP 尝试编译的代码坚持使用 GLUT,那么它应该是可移植的。对该库的引用可能在那里,因为链接器过去无法从链接的 SO 导入中提取依赖项,并且必须显式提供。如今,大多数系统不再需要这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多