私は Windows で作業しており、C++ から Matlab にデータを送信したいと考えています。これはメイクファイルを作成するのが最も簡単だという印象を受けました。したがって、make コマンドを使用するために cygwin をインストールしました。
私のメイクファイルは次のとおりです。
CXX = g++
CFLAGS = -O3 -I /cygdrive/c/Program\ Files/MATLAB/R2011a/extern/include
LIBS = -L /cygdrive/c/Program\ Files/MATLAB/R2011a/extern/lib/win64/microsoft/
LIBS2 = -L /cygdrive/c/Program\ Files/MATLAB/R2011a/extern/lib/win64/microsoft/libmx.lib
LDFLAGS = -leng -lmx
RKspace2d: RKspace2d.o
$(CXX) -o $@ $^ $(LDFLAGS) $(LIBS)
RKspace2d.o: RKspace2d.cpp
$(CXX) -c $(CFLAGS) $(LIBS) $<
# $@ name of the target
# $^ name of all prerequisites with duplicates removed
# $< name of the first prerequisite
Cygwin ターミナルで「make」と入力すると、正しいディレクトリに移動して次のエラーが表示されます。
$ make
g++ -o RKspace2d RKspace2d.o -leng -lmx -L /cygdrive/c/Program\ Files/MATLAB/R2011a/extern/lib/win64/microsoft/
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -leng
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lmx
collect2: ld returnerede afslutningskoden 1
makefile:8: recipe for target `RKspace2d' failed
make: *** [RKspace2d] Error 1
libeng.lib と libmx.lib の両方が microsoft フォルダーに含まれているため、パスは正しいと思います。
皆さんがトーマスを助けてくれることを願っています