- 积分
- 136188
- 注册时间
- 2014-12-27
- 最后登录
- 2024-4-10
- 在线时间
- 603 小时
- 威望
- 562
- 贡献
- 29
- 金币
- 52691
- 钢镚
- 1422
- 交易凭证
- 1
- 分享
- 0
- 精华
- 33
- 帖子
- 2094
- 主题
- 1742
TA的每日心情 | 擦汗 2018-4-10 15:18 |
---|
签到天数: 447 天 [LV.9]以坛为家II
超级版主
- 威望
- 562
- 贡献
- 29
- 金币
- 52691
- 钢镚
- 1422
|
Crossbridge = FlasCC = Alchemy
接續上帖初探 Alchemy 之下載篇,下載完Crossbridge後。還要記得安裝Java 64位元(用32位元也可以,但是因為記憶體的問題,所以編譯時要多輸入-jvmopt=-Xmx1G和下載Flex_sdk_4.6。這邊假定已經安裝好Java 32位元,且有D:/Crossbridge_1.0.1和D:/flex_sdk_4.6這兩個資料夾。
到D:/Crossbridge_1.0.1,雙擊run.bat,出現下圖,即表示正確
~~~ FlasCC SDK Cygwin Environment ~~~
To compile the samples type the following command <replace the FLEX variable with the real path to your flex sdk>:
make FLASCC="/cygdrive/d/CrossBridge_1.0.1/sdk" FLEX="/path/to/flexsdk"
niauwu /cydrive/d/Crossbridge_1.0.1/samples
$
這段文字的意思是,要編譯範例,請輸入以下指令 <記得替換FLEX的路徑變數為實際的flex sdk路徑>:
目前所在的資料夾是d/Crossbridge_1.0.1/samples。
在$輸入cd 01_HelloWorld
就會跳到d/Crossbridge_1.0.1/samples/01_HelloWorld資料夾
在$輸入make FLASCC="/cygdrive/d/Crossbridge_1.0.1/sdk" FLEX="/cygdrive/d/flex_sdk_4.6"
輸入時要一字不差,不過[size=14.3999996185303px]"可以不用打,尤其FLASCC和FLEX要注意用大寫。不然會出現以下提示,說無法定位FLASCC sdk目錄,請調用make "make FLASCC=/path/to/FLASCC/sdk ...",原來是cydrive少打了個g,cygdrive,而且sdk/應為sdk",還有4.6應為4.6"
是否覺得這樣太麻煩了,而且還會不小心打錯,其實只要到D:\Crossbridge_1.0.1\samples開啟Makefile.common把FLASCC:=X改成FLASCC:=/cygdrive/d/Crossbridge_1.0.1/sdk,FLEX:=X改成FLEX:=/cygdrive/d/flex_sdk_4.6
即可直接輸入make編譯
輸入make後,出現以下新的錯誤
-------- Sample 1 --------
First let's compile it as a projector: 首先讓我們編譯其為專案器:
"/cygdrive/d/Crossbridge_1.0.1/sdk/usr/bin/gcc" -Werror -Wno-write-strings -Wno-trigraphs hello.c -o hello.exe
cc1: error in backend 後端錯誤: Fail to run 無法運行 /cygdrive/d/Crossbridge_1.0.1/sdk/usr/bin/../../usr/bin/llc with arg: -jvm=C:\Windows\system32\java -filetype=obj D:\Crossbridge_1.0.1\cygwin\tmp\cc2EjQzm.o -o D:\Crossbridge_1.0.1\cygwin\tmp\cc2EjQzm.o -jvmopt -Xmx1500M
Error:
LLVM ERROR: Error: Unable to launch the Java Virthal Machine. 錯誤: 啟動 Java 虛擬機
This usually means you have a 32bit JVM installed or have set your Java heap size too large.
這通常表示你安裝了 32 位元的 JVM 或者設定的 Java 堆太大了。
Try lowering the Java heap size by passing "-jvmopt=-Xmx1G" to gcc/g++.
試試將低 Java 堆大小,藉由傳遞 "-jvmopt=-Xmx1G" 到 gcc/g++。
Stack dump 堆棧傾印 :
0. Program arguments: D:\Crossbridge_1.0.1\sdk\usr\btn\llc.exe -jvm=C:\Windows\system32\java -filetype=obj D:\Crossbrige_1.0.1\cygwin\tmp\cc2EjQzm.o -o D:\Crossbridge_1.0.1\cygwin\tmp\cc2EjQzm.o -jvmopt -Xmx1500M
1. Running pass 'Function Pass Manager' on module 'D:\Crossbridge_1.0.1\cygwin\tmp\cc2EjQzm.o' .
Makefile:2: recipe for target 'T01' failed 給目標'T01'的命令失敗
make: *** [T01] Error 1 編譯時有1個錯誤
會出現以上錯誤是因為裝了 32 位元的 Java,解決方法是裝 64 位元的 Java,因為範例中有些需要用大的記憶體,不過如果不裝 64 位元的 Java 也可以,只要傳遞 -jvmopt=-Xmx1G,設定記憶體大小1G即可正常編譯。
用notepad++開啟位於D:\Crossbridge_1.0.1\samples\01_HelloWorld的Makefile
在第4行和第7行後面輸入 -jvmopt=-Xmx1G
輸入make 即可編譯成功,依據電腦的效能,可能要等數秒到數分鐘,當然 sample 1 比較簡單,所以一下就好了。
到D:\Crossbridge_1.0.1\samples\01_HelloWorld執行hello.swf
如果很好奇的運行hello.exe,會發現hello.exe - 系統錯誤,無法啟動程式,因為您的電腦遺失 cygwin1.dll。請嘗試重新安裝以修正這個問題。
只要把hello.exe放到D:\Crossbridge_1.0.1\cygwin\bin,就可以運行正常hello.exe,但是會一閃而過。(拍這張一閃而過得圖好辛苦阿)
或者也可以直接輸入./Hello.exe
仔細看一下hello.c的內容,代碼很簡單,就是在main函數用printf方法顯示Hello World,剩下的就是一些license
- #include <stdio.h>
- int main(int argc, char **argv)
- {
- printf("Hello World\n");
- }
复制代码 參考資料
ALCHEMY 2 (FLASCC)新手入门
http://www.qkeye.com/thread-163331-1-1.html
FlasCC安装和配置指南
http://bbs.9ria.com/thread-166310-1-1.html
FlasCC Tutorial #1: Getting Started with FlasCC
http://flascc.blogspot.tw/2013/0 ... g-started-with.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|