簡體   English   中英

C++/Tk:我們能否創建一個可執行文件,無需最終用戶安裝任何特殊的 TcL 解釋器即可運行?

[英]C++/Tk: can we create an executable that would run with out requiering end user to have any special TcL interpriter installed?

將 C++/Tk 程序編譯為可在其他用戶機器上運行的可執行文件的分步說明是什么,不需要最終用戶安裝任何其他軟件,TCL tk 是否有任何完全 static 鏈接選項?

這是 Tcl 的原始用例,盡管現在不經常這樣做。 看看 Brent Welch 書中的這個免費章節,以獲得好的但過時的介紹(或購買他的書的第 4 版以獲得更新的版本)。 另一個簡短的總結是在 Tcl wiki 上的將 Tcl/Tk 添加到 C 應用程序中。

Tcl 和 Tk 在靜態構建時工作得很好; 這是受支持(但不是默認)的配置。 只需獲取源版本並使用--disable-shared對其進行配置,以確保它們為您構建正確類型的庫。

Colin 的答案鏈接到您需要了解的關於從應用程序內部使用 Tcl 和 Tk 的編碼的大部分內容,除了您還需要在調用任何其他程序之前調用Tcl_FindExecutable (我假設您沒有調用Tcl_MainTk_Main ,它會為你做到這一點,但讓你必須分別像tclshwish一樣工作)。 這是確保 Tcl 庫在內部正確配置的必要調用,因為它處理初始化編碼系統和其他類似的低級細節。

If you can structure your program like it works with tclsh or wish and just loading your C++ code as an extension package, I would urge you to build your code stubs-enabled and then package it all as a starkit/starpack . 特別是,starpack 是一個單文件可執行文件,它實際上是 Tcl 和 Tk 的自包含二進制分發以及壓縮存檔格式的應用程序代碼。 以這種方式分發應用程序確實相當不錯,因為它避免了將代碼放在用戶可能無意中破壞它的地方,但它並不適合所有情況。 (有相關的解決方案也可以包括加密您的代碼,但它們僅用於商業用途。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM