gpt4 book ai didi

c - 打开 Watcom Linker 在链接 C 和 Fortran 代码以构建 Matlab mex 文件时发现 undefined reference

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:49 25 4
gpt4 key购买 nike

使用 Windows 7、Matlab R2011a(32 位)和 Open Watcom 1.8 版,我正在尝试编译调用 Fortran 代码的 C MEX 文件。

按照 Matlab 网站 (support link) 上发布的说明,我首先使用以下命令编译了一个 Fortran 对象文件:

wfl386 -c -fpi87 -SC getqpf.f

然后我尝试将目标文件链接到许多 C 文件。所有 C 文件都可以正确编译,但我收到以下链接错误。 undefined reference 用于从 getqpf.f 中的子例程调用的 C 文件中的函数。例如,QESTM 在其中一个 C 文件中被定义为函数 int qestm_()

q_estimate.c 文件包含 MEX 程序的入口函数。这个想法是让入口点函数调用getqpf.f 中的子例程。 getqpf.f中的子程序调用其他文件中的C代码函数。

我怎样才能摆脱 undefined reference ?

>> mex q_estimate.c paul2.c paul2_L1.c paul6.c paul6_L1.c runavg.c fit_slope.c getqpf.obj
Open Watcom Linker Version 1.8
Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
loading object files
searching libraries
Error! E2028: QESTM is an undefined reference
Error! E2028: QESTM1 is an undefined reference
Error! E2028: QESTF is an undefined reference
Error! E2028: QESTF1 is an undefined reference
creating a Windows NT dynamic link library
file getqpf.obj(E:\DEVELOPMENT-FINAL\EXPERIMENTS\test-Q-analysis\getqpf.f): undefined symbol QESTM
file getqpf.obj(E:\DEVELOPMENT-FINAL\EXPERIMENTS\test-Q-analysis\getqpf.f): undefined symbol QESTM1
file getqpf.obj(E:\DEVELOPMENT-FINAL\EXPERIMENTS\test-Q-analysis\getqpf.f): undefined symbol QESTF
file getqpf.obj(E:\DEVELOPMENT-FINAL\EXPERIMENTS\test-Q-analysis\getqpf.f): undefined symbol QESTF1
C:\PROGRA~2\MATLAB\R2011A~1\BIN\MEX.PL: Error: Link of 'q_estimate.mexw32' failed.

最佳答案

由于 C 在命名时区分大小写,您是否尝试过将函数定义为 int QESTM_() 而不是 int qestm_()

关于c - 打开 Watcom Linker 在链接 C 和 Fortran 代码以构建 Matlab mex 文件时发现 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348172/

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