TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

标题: 编译TCAX,尝试提高Python支持版本 [打印本页]

作者: 面麻    时间: 2016-2-9 01:08:53     标题: 编译TCAX,尝试提高Python支持版本

新年纪念。苦于许多程序对 Python 3.x 的版本要求不一样,因此尝试编译 GitHub 上的 TCAX Solution。
如料想一样,过程中遇到了问题。
编译环境:VS 2015 Community,Python 版本:3.5.1,32位版本
首先,原工程是利用 VS 2010 创建的,因此打开 Solution 时需要升级;
其次,对 Project 作了几处修改:
1. 几个 Header 和 Source 文件路径问题,具体是 hla_z_comp、rb、tcas、vector,它们的路径改为 "../../libtcas/tcas/";
2. 修改工程属性中的 C++目录,包括更新 Python 3.5 的 Include 和 libs 的路径、zlib 的路径;
3. Resource Files 缺失,也就是图标,从 TCAX 1.2.0 中复制到指定路径;
4. tm.h 中 include 路径修改为:#include "../FreeType/ft2build.h",同时修改:#pragma comment(lib, "../FreeType/freetype248.lib")。
接着,尝试编译,于是出现了问题,貌似是 zlib.lib 的编译器版本问题。

目前编译出的版本暂时可用。
2016.2.13
addition_of_python3.5.1_support_temp.zip (630.29 KB, 下载次数: 2857)

图片附件: tcax_make.PNG (2016-2-9 01:06:28, 82.09 KB) / 下载次数 863
http://tcax.org/forum.php?mod=attachment&aid=MTk2MXwxYTkyZmI0YXwxNzE1NDgwMjAwfDB8MA%3D%3D



附件: addition_of_python3.5.1_support_temp.zip (2016-2-13 01:38:45, 630.29 KB) / 下载次数 2857
http://tcax.org/forum.php?mod=attachment&aid=MTk2NXw5NTY1MDYxOXwxNzE1NDgwMjAwfDB8MA%3D%3D
作者: milkyjing    时间: 2016-2-9 18:47:12

下载zlib工程,用vs2015编译,替换上图错误信息中的文件试试
作者: 面麻    时间: 2016-2-10 00:43:51

本帖最后由 面麻 于 2016-2-10 00:45 编辑

zlib.lib 的问题通过 vs nmake 解决了。FreeType 貌似也有点问题,不过无碍。
编译成功后,运行:
tcax_make_error1.PNG
把 DLL 拷贝进去后可以运行。(这一处是为什么?查看 tcax1.2.0中并没有这个 DLL)
于是,TCAX CMD 是出来了。但是它仅仅只是个“空壳”,无法执行任务:
tcax_make_error2.PNG
猜想是因为组件还没有编译,所以想请教一下组件的编译顺序,或者能给出 Guideline 更好~
感谢 milk ~

图片附件: tcax_make_error1.PNG (2016-2-10 00:38:33, 8.1 KB) / 下载次数 922
http://tcax.org/forum.php?mod=attachment&aid=MTk2M3wwYzk4NmEzOHwxNzE1NDgwMjAwfDB8MA%3D%3D



图片附件: tcax_make_error2.PNG (2016-2-10 00:37:52, 12.84 KB) / 下载次数 881
http://tcax.org/forum.php?mod=attachment&aid=MTk2MnxiZTA1NDI0MnwxNzE1NDgwMjAwfDB8MA%3D%3D


作者: milkyjing    时间: 2016-2-12 22:27:50

面麻 发表于 2016-2-10 00:43
zlib.lib 的问题通过 vs nmake 解决了。FreeType 貌似也有点问题,不过无碍。
编译成功后,运行:

問題1:那是因為你編譯的FreeType是動態鏈接庫,而非靜態lib,官方發佈的TCAX鏈接的FreeType是靜態庫,因此不需要freetype dll,目前你的這種做法也是可以的,如果想保持一致,可以靜態編譯FreeType

問題2:把你編譯出來的東西替換最新正式發佈的tcax即可。這個界面也是一種用法,具體看教程。
作者: 面麻    时间: 2016-2-12 22:51:34

這個界面也是一種用法

它貌似不能正常执行任务。
静态库确实是问题。
tcaxLib.pyd 等等貌似也是需要重新编译的,否则会出现 Python 版本问题。
作者: milkyjing    时间: 2016-2-14 11:38:00

面麻 发表于 2016-2-12 22:51
它貌似不能正常执行任务。
静态库确实是问题。
tcaxLib.pyd 等等貌似也是需要重新编译的,否则会出现 Pyth ...

tcaxLib.pyd重新編譯一下就可以了吧。應該沒有其他組件涉及python的吧?
作者: milkyjing    时间: 2016-2-14 11:42:50

記得所有TCAX相關源代碼以及基礎的VS2010工程文件我都上傳到github了。面麻 如果有時間的話,能夠寫個全版本構建指導嗎。
作者: 面麻    时间: 2016-2-14 16:35:38

milkyjing 发表于 2016-2-14 11:42
記得所有TCAX相關源代碼以及基礎的VS2010工程文件我都上傳到github了。面麻 如果有時間的話,能夠寫個全版 ...

编译成功的程序和 tcaxLib.pyd 已经在上面上传上来了。
可以把我更新的 Source 和 相关的 lib 上传到这边。下载后用 VS2015 打开 tcax.sln 就可以编译成功。
全版本構建指導是指什么?
作者: milkyjing    时间: 2016-2-14 20:40:45

面麻 发表于 2016-2-14 16:35
编译成功的程序和 tcaxLib.pyd 已经在上面上传上来了。
可以把我更新的 Source 和 相关的 lib 上传到这边 ...

指其他开发者从下载源代码到最终完成所有tcax相关组件编译的操作说明(包括编译后的基础功能使用)。
作者: 面麻    时间: 2016-2-15 01:05:43

Source Code zip (tested and updated, build_guideline inside): http://pan.baidu.com/s/1qWZ4hyc 密码: s1j4
单独的 build_guideline 在附件。
build_guideline.zip (1.74 KB, 下载次数: 2814)

附件: build_guideline.zip (2016-2-15 01:05:32, 1.74 KB) / 下载次数 2814
http://tcax.org/forum.php?mod=attachment&aid=MTk2N3w0NGVmMzk3NHwxNzE1NDgwMjAwfDB8MA%3D%3D
作者: milkyjing    时间: 2016-2-15 21:53:53

面麻 发表于 2016-2-15 01:05
Source Code zip (tested and updated, build_guideline inside): http://pan.baidu.com/s/1qWZ4hyc 密码:  ...



Good Job!


重新編譯過後的程序一般功能都能正常使用了嗎

known bugs裡面正式發佈的版本沒有問題,自己重新編譯的有問題嗎?

p.s. 建議fork一下tcax工程,然後把改動以MR形式提交。這是一個開源工程,希望能有更多開發者參與
作者: 面麻    时间: 2016-2-15 22:59:52

milkyjing 发表于 2016-2-15 21:53
Good Job!

一般功能完好
自己重新编译的版本在命令行中无法执行指定的任务,例如生成 default python script
MR形式是什么?以前没有在 GitHub 上做过这些 (包括 fork等等),还请 milk 指点。
作者: milkyjing    时间: 2016-2-20 23:21:34

面麻 发表于 2016-2-15 22:59
一般功能完好
自己重新编译的版本在命令行中无法执行指定的任务,例如生成 default python script
MR形式 ...

这些都是git术语。

git是当下最流行的源码管理工具。github是集成git的一个网站。类似于以前的svn以及googlecode或sourceforge。

mr fork clone都是git术语。建议花点时间大概学习一下。对学习和工作都会很有帮助
作者: 面麻    时间: 2016-2-21 01:37:46

本帖最后由 面麻 于 2016-2-21 01:38 编辑
milkyjing 发表于 2016-2-20 23:21
这些都是git术语。

git是当下最流行的源码管理工具。github是集成git的一个网站。类似于以前的svn以及go ...


可能需要过一段时间来完成 fork ,学业方面面临很大的挑战。
附上今天编译的 util.tcAudio.pyd
tcAudio.pyd (14.5 KB, 下载次数: 2678)


附件: tcAudio.pyd (2016-2-21 01:38:11, 14.5 KB) / 下载次数 2678
http://tcax.org/forum.php?mod=attachment&aid=MTk3MXw0ZWM1NDJmMHwxNzE1NDgwMjAwfDB8MA%3D%3D
作者: saiyaku    时间: 2016-2-21 01:49:45

面麻 发表于 2016-2-21 01:37
可能需要过一段时间来完成 fork ,学业方面面临很大的挑战。
附上今天编译的 util.tcAudio.pyd

有什么改动吗
作者: 面麻    时间: 2016-2-21 14:39:23

saiyaku 发表于 2016-2-21 01:49
有什么改动吗

没有特别的,只是支持Python3.5,不必须安装旧版本了。
作者: aristotll    时间: 2016-7-8 07:45:50

本帖最后由 aristotll 于 2016-7-8 08:41 编辑

请问一下编译出来的pyd能直接作为Python的模块导入吗, 我试着自己写一个Python脚本 保错
  1. in <module>
  2.     from tcaxLib import *
  3. ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
复制代码
---

问题已经解决, 给后来者一些信息吧, 原因是因为我是64位的Python 下载一个32位的import成功




欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/) Powered by Discuz! X2