为Java编译Mex文件

时间:2018-11-15 06:00:32

标签: java matlab mex

我发现了一个用于matlab的基于Java的TCP-IP系统,该系统可能解决了我在使用多个不间断连接时遇到的许多问题。但是,我对如何使其工作感到困惑。我已经在Linux下多次编译代码,但从未在Windows上编译过。

我要编译的代码位于here中,它指出:

构建

通过随附的Makefile编译MEX文件和Java帮助程序。

make

问题是如何?我想到使用Visual Studio命令提示符,但最终出现错误:

  

makefile(8):致命错误U1036:语法错误:'='左边的名称过多

哪个建议我必须编辑makefile或我使用了错误的编译器。而且我不懂Java,所以我什至都不知道从哪里开始编译。

编辑:更新以显示Makefile中的代码

MATLABDIR ?= /usr/local/matlab
MATLAB := $(MATLABDIR)/bin/matlab
MEX := $(MATLABDIR)/bin/mex
MEXEXT := $(shell $(MATLABDIR)/bin/mexext)
MEXSOURCES := $(wildcard private/*.cc)
MEXTARGETS := $(patsubst %.cc,%.$(MEXEXT),$(MEXSOURCES))
CLASSPATH := java
JAVASOURCES := $(wildcard java/matlab_tcpip/*.java)
JAVATARGETS = $(patsubst %.java,%.class,$(JAVASOURCES))
JARFILE = java/matlab_tcpip.jar

all: $(JARFILE) $(MEXTARGETS)

%.$(MEXEXT):%.cc
    $(MEX) $< -output $@

$(JARFILE): $(JAVATARGETS)
    jar cvf $@ -C java matlab_tcpip/
    jar i $@

%.class:%.java
    javac -cp $(CLASSPATH) $<

test: $(JARFILE)
    echo "run test/runServer.m" | $(MATLAB) -nodisplay & \
    echo "run test/runClient.m" | $(MATLAB) -nodisplay

clean:
    rm $(MEXTARGETS) java/matlab_tcpip/*.class $(JARFILE)

0 个答案:

没有答案