我正在嘗試構建和修復UCL RAT以便在VS 2010編譯的窗口上運行。 我已經在Visual Studio 2010下成功編譯了TCL 8.5.12,並且主RAT可執行文件。在VS 2010下編譯的鏈接階段缺少符號
RAT使用TCL來驅動它的用戶界面。
的問題出現了,當我開始改變RAT嵌入通常存儲爲串入而不是使用zvfs一個zip文件的TCL代碼。目的是最終將zip嵌入到可執行文件的末尾,以儘量減少磁盤使用量和分發文件的數量。
於是我下載了一些代碼從TOBE項目zvfs,看看我是否可以用它來使這個過程更快(特別是zvfs.c文件基本上是zvfs擴展TCL)
這需要的Zlib爲了運行哪個內置集成精品。
但問題是zvfs代碼不與TCL正確鏈接。它通過編譯但在連接有下列錯誤:
與C/C++和我可能是這已經在窗口的更現代版本的固定RAT變得有些路障的鏈接經歷2>zvfs.obj : error LNK2019: unresolved external symbol _TclOpenFileChannelInsertProc referenced in function _Zvfs_Init
2>zvfs.obj : error LNK2019: unresolved external symbol _TclStatInsertProc referenced in function _Zvfs_Init
2>zvfs.obj : error LNK2019: unresolved external symbol _TclAccessInsertProc referenced in function _Zvfs_Init
不是。
RAT版本是來自UCL顛覆服務器最新的,zlib的是1.2.7版本,如果這有任何影響。
乾杯
注意,代碼_will不ALL_從Tcl的8.6開始工作,因爲那些過時的功能已被刪除。 TOBE需要更新才能使用替代這些鉤子的VFS API。 –
謝謝,這確實解決了我的鏈接問題,但從長遠來看,修改zvfs代碼以匹配新的tcl鉤子會更好。我仍然沒有設法讓RAT工作,但這不是zvfs代碼的錯誤,我懷疑tcl腳本本身需要更新。 – user1855149
如果RAT對版本敏感,則最好回滾到8.4;這仍然是受支持的Tcl版本。 –