2012年11月15日 星期四

openwatcom in linux

the 1st edition: 20121115 (4)
the 2nd edition: 20161205 (1)

watcom c compiler 很有名, 應該不用多說。對於用了好多年的 gcc, 我想試試不同的 c/c++ compiler。

watcom c compiler 大概的介紹: http://my.oschina.net/GIIoOS/blog/52774

但是在 dos 時代我沒用過, 反而是在 linux 環境下用到了它。不過真的讓我想要嘗試 watcom c 是因為他支援 pascal call convention, 我在 gcc 上沒找到支援 pascal call convention 的方式, 我又不想在 windows 下跑 vc 這個大傢伙 (vc 2012 目前好像也不支援 pascal call convention), 意外找到 watcom c。

我很意外 debian/ubuntu 都沒有收錄 openwatcom, 它也是 opensource, 真是奇怪, 不知道是不是其授權的關係, 只好手工安裝。

download

執行 ./open-watcom-c-linux-1.9 來安裝 open watcom, 會跑出一個安裝程式, 如果遇到
~/openwatcom$ ./open-watcom-c-linux-1.9 
Floating point exception (core dumped)
https://groups.google.com/forum/#!topic/openwatcom.users.c_cpp/9rO3NwjfWfM

cd /usr/share/terminfo/x/
ln -s /lib/terminfo/x/xterm* .

設定環境變數: http://www.openwatcom.org/index.php/Installing_Open_Watcom_on_Linux

export WATCOM=~/ow/
. ~/ow/owsetenv.sh 

openwatcom 有自己的 include files,

linux 版本執行檔在 openwatcom/binl/*

編譯指令:
wcl386 -c -d1 a.c 
wcl386 a.o

如果遇到
Open Watcom C/C++32 Compile and Link Utility Version 1.9
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
 wlink @__wcl__.lnk
Open Watcom Linker Version 1.9
Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
Warning! W1115: file wlink.lnk: line(20): environment name WATCOM not found
Error! E2093: file wlink.lnk: line(20): cannot open /binl/wlsystem.lnk
Error: Linker returned a bad status

設定 WATCOM 環境變數
descent@debian64:tmp$ export WATCOM=/opt/watcom/

-d1/-d2 是加入 debug information, 可使用 gdb 來作 source code level debug, 不過 openwatcom 也有提供一個親切畫面的 debugger。-d2 會多產生一些額外的程式碼。

-i../include 則是指定 include directory

-s remove stack overflow checks, 就不會看到 call <__chk> 這樣的程式碼

產生組合語言碼 ./b.s:

owcc -S b.c

已經習慣 command line/makefile 的編譯方式, 這並不會比學習 ide 慢上多少, 知道編譯動作的基本原理, 這些參數的功能都是一樣的, 不一樣的是選項名字。

openwatcom也自帶內建 vi, 很親切的畫面, 對於在其他平台上會讓 vi 使用者很熟悉。

ref:


沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。