Skip to content
This repository has been archived by the owner on Jun 18, 2023. It is now read-only.

编译时没有找到build目录 #36

Open
thinkinnight opened this issue Jun 28, 2015 · 13 comments
Open

编译时没有找到build目录 #36

thinkinnight opened this issue Jun 28, 2015 · 13 comments

Comments

@thinkinnight
Copy link
Contributor

您好,终于找到一个ALTRun的替代品,希望可以做些contribute,不过编译的时候遇到一些问题,是否可以提供帮助。
在README.MD中提到,
3. 打开命令管理器(CMD.EXE)进入ALMRUN源码目录

    cd Build
    cmake ..
    ALMRun.sln

但是,我并没有找到Build目录,只是有一个Build.cmd文件,但是里面也会有pushd,直接运行有问题。cmake是下载的zip解压的,在PATH中指定过了。不清楚具体是哪里的问题无法编译。

@thinkinnight thinkinnight changed the title 没有找到build目录 编译时没有找到build目录 Jun 28, 2015
@chenall
Copy link
Owner

chenall commented Jun 29, 2015

欢迎Pull你的改进代码.

要编译ALMRun需要先下载编译wxWidgets然后再用cmake生成ALMRun.sln
你可以尝试手工建立这个build目录..

@thinkinnight
Copy link
Contributor Author

还是编译出问题,我使用的版本是VS 2010 SP1,手头没有VS 2012版本,所以我将CMakeLists.txt中的V110_XP修改为V100,在目录下建立了Build目录,编译了d:\dev\wxwidget的Release和debug版本。使用cmake ..可以生成ALMRun.sln,但是之后用该sln有很多link错误。

@thinkinnight
Copy link
Contributor Author

已经编译成功,需要在Ignore Specific Default Libraries中加入libcmt.lib,同时生成的文件是在Build目录下面的debug和release目录,而不是在bin目录下,不过拷贝文件之后已经可以用了。

@chenall
Copy link
Owner

chenall commented Jun 30, 2015

^_^,成功就好,希望你可以优化一下代码。看能不能找到内存错误的原因。谢了!

@thinkinnight
Copy link
Contributor Author

现在运行Release版没有问题,但是debug版本会有问题,主要是我使用的是win7英文版,但是codepage是中文,现在会跳assert,是在做拼音的那块,使用wxstring.append方法时,做multibytetowidechar时,wxwidget有问题,我使用的是wxWidgets-3.0.2

@chenall
Copy link
Owner

chenall commented Jul 1, 2015

assert的问题,DEBUG里面是有很多判断,我记得有一个RELEASE-DEBUG的,我一般用这个版本调试。

@thinkinnight
Copy link
Contributor Author

今天刚好有点时间,调了一下,错误原因找到了,是在遍历command的时候,有一个德文的字符ü,其对应的编码为0xa8 0xb9,在pinyin.Append(H)的时候会出现问题,在拆分的时候H=0xa8和H=0xb9时,调用都会出现转换问题。
因为不是特别清楚这块的判断机制,不知道是否可以直接过滤掉。

@chenall
Copy link
Owner

chenall commented Jul 1, 2015

可以尝试修改
pinyin.Append(H)
多加上一个判断,如果是ASCII 0-0x80 之内的字符才添加。
if (H < 0x80) pinyin.Append(H)

@thinkinnight
Copy link
Contributor Author

那原来的(H < 0xB0 || L < 0xA1 || H > 0xF7 || L == 0xFF)这个判断还需要吗?

@chenall
Copy link
Owner

chenall commented Jul 1, 2015

要,前面是判断非中文的。
改完之后就是如下的样子

if (H < 0x80) pinyin.Append(H);
continue;

@woshichuanqilz
Copy link

你好我用的也是2010, 在排除选项里面加入libcmt.lib 之后 显示无法解析wpgmptr这个符号, wpgmptr是在stdlib.h中的, 加上stdlib.h还是无法解析。

请问是怎么回事?

@thinkinnight
Copy link
Contributor Author

你的2010有没有打上SP1,没有打上SP1会出现很多问题,需要去打上SP1。下载地址:http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso

@woshichuanqilz
Copy link

十分感谢

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants