gpt4 book ai didi

c - 尝试使用 matlab 的 libmat.dll,但编译器无法识别库中的函数

转载 作者:行者123 更新时间:2023-11-30 15:30:33 25 4
gpt4 key购买 nike

我正在尝试在 C 应用程序中使用 matlab libmat.dll。为了编译我的 C 应用程序,我使用 MinGW,现在我使用 matlab 示例“matcreate.c”并尝试编译它,因此项目仅包含一个文件:main.c。

这是我使用的 makefile:

MATINCLUDE  = "C:\Program Files\MATLAB\R2010a\extern\include"
MATLIBRARY = "C:\Program Files\MATLAB\R2010a\bin\win64"
#
CC = gcc
LD = gcc
CFLAGS = -O3 -Wall
LFLAGS = -Wall -O3
LIBS = -I$(MATINCLUDE) -L$(MATLIBRARY)
#
PROG = matTest
LISTEOBJ = \
main.o

.c.o :
$(CC) -c $(CFLAGS) $(LIBS) -o $@ $<
all : $(PROG)


$(PROG) : $(LISTEOBJ)
$(LD) -o $(PROG) $(LFLAGS) $(LISTEOBJ) $(LIBS)

clean :
rm -f *.obj

这是我在控制台中得到的内容

E:\Users\Desk\Dropbox\matTest>make

gcc -c -O3 -Wall -I"C:\Program Files\MATLAB\R2010a\extern\include" -L"C:\Pr
ogram Files\MATLAB\R2010a\bin\win64" -o main.o main.c
gcc -o Hello_world -Wall -O3 main.o -I"C:\Program Files\MATLAB\R2010a\extern\i
nclude" -L"C:\Program Files\MATLAB\R2010a\bin\win64"
main.o:main.c:(.text.startup+0x48): undefined reference to `matOpen'
main.o:main.c:(.text.startup+0x6e): undefined reference to `mxCreateDoubleMatrix
_730'
e:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: main.o: ba
d reloc address 0x6e in section `.text.startup'
e:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
make: *** [Hello_world] Error 1

为什么我有“对 matOpen 的 undefined reference ”和“对 mxCreateDoubleMatrix 的 undefined reference ”?这些函数在 mat.h 中声明。我将 #include "mat.h"添加到 main.c 的开头

谢谢

最佳答案

看起来您已经包含了 matlab 库的路径,但没有包含库本身。您需要添加-l<libraryname>到您的链接线。

关于c - 尝试使用 matlab 的 libmat.dll,但编译器无法识别库中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com