为Windows编译TCL C扩展

问题描述 投票:0回答:1

我使用 SWIG 包装器成功地将我的 C 扩展编译为 TCL,它在 Linux 中工作,并在 MSYS64 环境中的 Windows 下成功编译(没有错误或警告),但是当我尝试在 TCL 脚本中加载此模块时,我得到了以下信息:

this library or a dependent library could not be found in library path

我的Makefile是:

all: filter.dll
CC=gcc
BUILD=build

filter.dll: $(BUILD)/filter.o $(BUILD)/filter_wrap.o 
    mkdir -p $(BUILD)
    $(CC) -shared  $(BUILD)/filter.o $(BUILD)/filter_wrap.o $(BUILD)/../tclStubLib.o -o $(BUILD)/filter.dll

$(BUILD)/filter.o: filter.h filter.c
    mkdir -p $(BUILD)
    $(CC) -c filter.c -fPIC -Wall -O3 -g -march=native -o $(BUILD)/filter.o

$(BUILD)/filter_wrap.o: filter_wrap.c filter.h
    mkdir -p $(BUILD)
    $(CC) -c filter_wrap.c -I\C:\msys64\usr\lib\tcl8.6 -fPIC -O3 -DUSE_TCL_STUBS -o $(BUILD)/filter_wrap.o

清洁: rm -rf $(BUILD) filter.dll

显然缺少一些库,但我不明白是哪些库。预先感谢您!

tcl swig
1个回答
0
投票

问题的根源是错误的MSYS环境,应该是MINGW64

© www.soinside.com 2019 - 2024. All rights reserved.