老实说,我一直在尝试构建在网络上使用的Qhull。我完全迷路了。我已经安装了Emscripten SDK,并且我已经试着阅读了指南。据我所知,似乎有两种方法可以编译像这样的大型项目:我可以将文件作为参数传递给emcc,或者我可以创建自己的自定义Makefile,以某种方式为我做这件事。但我既不知道如何将多个文件作为参数传递,也不知道Makefile是如何工作的。
在网上搜索后,我设法找到了this port of an old Qhull version,它有自己的Makefile:
QHULL_PATH = ./src/libqhull
TARGET = qhull.js
EMCC = ../emscripten/emcc
PREJS = ./src/pre.js
POSTJS = ./src/post.js
MAIN = ./src/main.c
EXPORTJS = "['_run_qhull']"
CFLAGS = -O1
SOURCES := $(shell find $(QHULL_PATH) -type f -name '*.c')
all: $(TARGET)
@echo "Done"
$(TARGET): $(SOURCES) $(PREJS) $(POSTJS) $(MAIN)
$(EMCC) $(CFLAGS) $(SOURCES) $(MAIN) -s EXPORTED_FUNCTIONS=$(EXPORTJS) --pre-js $(PREJS) --post-js $(POSTJS) -o $(TARGET)
clean:
rm -rf $(TARGET)不幸的是,Makefile是Unix格式的,这是我在经历了大约两个小时的挫折后才弄明白的。我不知道如何让它在Windows上工作。
那么,我该怎么做才能在Javascript中运行最新版本的Qhull呢?
我使用的是Windows,我当前的IDE是Dev-C++。
发布于 2020-11-01 04:52:51
因此,如果您是编译新手,使用emscripten编译大型库将是一个巨大的挑战。我建议通过emscripten docs on compiling阅读。
看起来Qhull同时有一个MakeFile和一个CMakeLists.txt。我建议你试试CMake。
在linux上使用CMake和emscripten的典型方法是这样的:
mkdir embuild
cd embuild
emcmake cmake ..
emmake make我从来没有在Windows上编译过(我使用linux),但我相信(至少在使用Cmake时)它是相似的。
这可能不会在第一次尝试时起作用。
如果(经过多次尝试)你不能让它工作,你可以尝试用emcc手动编译qhull。它一开始看起来很难,但从长远来看,我通常会得到更少的错误。
https://stackoverflow.com/questions/64618125
复制相似问题