添加扩展到Tcl / Tk macOS框架

问题描述 投票:2回答:2

我已经能够在macOS上成功编译Tcl / Tk框架(按照说明here)。我在.app中使用这些框架进行分发。我想自定义我的Frameworks添加额外的扩展,例如Drag&Drop TkDND(顺便说一下,我真的认为这个基本的GUI功能应该是Tk的组成部分......)。

说明here似乎是指将扩展添加到正常安装,而不是框架。我没有找到任何明确的指示。对不起,如果问题是天真的,但我对Tcl / Tk非常缺乏经验。 PS:我的.app通过Perl访问Tk。我非常感谢任何帮助/说明/链接。

macos frameworks tcl tk
2个回答
0
投票

我不使用tkdnd,所以我没有特定于该安装的答案。

添加到我的script我的构建脚本中有块,例如构建'tdom'扩展的块。

cd $SRCDIR
cd tdom*
if [[ $? -eq 0 ]]; then
  make distclean
  ./configure \
      --exec-prefix=$INSTLOC \
      --prefix=$INSTLOC \
      --with-tcl=$INSTLOC/Library/Frameworks/Tcl.framework/tclConfig.sh
  make CFLAGS="-O2 -mmacosx-version-min=${macosxminver}"
  make install
fi

但是,链接到Tk库可能会使事情变得复杂。每个包都不同,使用不同的变量。所以我需要下载tkdnd并构建它并查看是否有任何问题,所以期待即将编辑此答案。

(编辑:我修改了the original question中的脚本,所以下面的段落不再适用)我对init.tcl脚本的更改并不完美,正如你所看到的,当我通过'wish'运行时加载了错误的包(希望)与tclsh位于不同的位置,这会导致一些问题)。我应该在auto_path的早期找到本地安装的路径。如果您使用我的脚本,则需要注意这一点。

bll-mac:$ ../darwin/64/tcl/bin/tclsh
% package require tdom
0.9.1

bll-mac$ ../darwin/64/tcl/bin/wish
% package require tdom
0.8.3
% package require tdom 0.9.1
0.9.1

framework(和b)和普通安装之间确实没有任何区别,框架只提供了资源定位的结构。

编辑:

似乎以下工作来编译和安装tkdnd包。重新定义PKG_CFLAGS是必要的,因为tkdnd makefile定义了一个编译器不支持的参数(在Mojave上)。所以PKG_CFLAGS是没有-fobjc-gc的makefile中的内容的副本。

我只是尝试做一个package require tkdnd。我不知道如何使用该包,所以我没有尝试其他任何东西。

cd $SRCDIR
cd tkdnd*
if [[ $? -eq 0 ]]; then
  make distclean
  ./configure \
      --prefix=$INSTLOC \
      --exec-prefix=$INSTLOC \
      --with-tcl=$INSTLOC/Library/Frameworks/Tcl.framework \
      --with-tk=$INSTLOC/Library/Frameworks/Tk.framework
  make CLAGS_OPTIMIZE="-O2 -mmacosx-version-min=${macosxminver}" \
       PKG_CFLAGS="-DMAC_TK_COCOA -std=gnu99 -x objective-c"
  make install
fi

0
投票

这似乎在标准路径(/ usr / local / lib)中安装了扩展,但在Tk.framework中没有。可能“make instal”应该需要一些额外的值。

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