Re: [問題] 請問怎設定UltraEdit可以執行c/c++ com …
※ 引述《polomaster27 (polo)》之銘言:
: 之前都是直接在vc的介面寫code
: 可是現在code越來越多感覺版面很亂
首先不知道 「code愈來愈多、版面很亂」是怎樣亂法,
若這專案是由你寫的,那該考慮的是 是否 class / function 要再次規劃,
我會認為 VS 提供的 IDE 「應」是在 windows 底下,
最方便、最容易整理、最容易 debug 與 trace。
這裡提一位 神之手 級說的:
(1) 若同一段 code 會重覆使用超過二次 -> 包成副函式
(2) 若一段 code 超過 30 行 -> 包成副函式
30 行這個數字不一定,有些人說 20,有些人說 25,當然這是在 C 裡面。
: 後來朋友介紹用UltraEdit
: 但是我不會設定在UltraEdit裡面compile
: 想請教一下怎麼設定?
(1) 既然是你朋友推薦的,怎麼不去問他?
(2) 給了這樣的建議,他真的是你較好的朋友嗎? (誤)
UltraEditor 確實拿來開發不少東西,
但目前大多仍是在開發網頁語言或是直譯程式較多,
而像 C/C++ 編譯式語言,必須經由 compile -> link 後,方能生成執行檔,
這部份若沒把 CL.exe 摸熟,百分百做不出來。
UltraEdit 我略有研究怎麼使用,要達到你的需求必需要有下面三項條件
(1) 對 UltraEdit 環境設定夠熟。
(2) 對 命令提示字元 很熟,還要有一定程度的批次檔能力。
(3) 對 M$ 之 CL.exe 要夠熟。
假設有一份 project, 裡面有 edisonx.cpp, header.h, header.cpp
其中 edisonx.cpp / header.cpp 引用了 header.h
我拿一份我寫的 batch.bat 當說明,這份 batch.bat 要根據這三個原始碼,
生成 .exe,環境為 xp + vs2008 (non-express),內容如下
@echo off
:: you can delete first line.
If Exist Release rd Release /s /q
If not Exist Release md Release
call "%VS90COMNTOOLS%vsvars32.bat"
CL.exe /O2 /Oi /Ot /GT /GL /D "_MBCS" /FD /MT /GS- /arch:SSE2 /GR- /openmp
/FAs /FAs /Fa"Release\\" /Fo"Release\\" /Fd"Release\\edisonx.pdb"
/Fe"Release\\edisonx.exe" edisonx.cpp header.cpp
嗯,覺得這沒什麼嗎?我只能說,裡面看到的
edisonx.exe / edisonx.cpp / header.cpp
到時在 ultra-edit 下都要用 ultra-edit 裡面的 macro / script 去抓出來。
言下之意,若堅持用 ultra-edit 進行 compile,
還要再多學一個 javascript 程式語言
( ultra-edit 對 javascript 支援性不錯倒是真的)
而在 source-code 於 ultra-edit 設定環境部份於此便不再深入探討,
要設的東西不少,要自己從頭打造、摸索也要花一大段時間 (只有環境唷!)
包含
程式語言high-light、自動完成結構(就是VC下輸入struct 會帶成員出來的功能)、
建立 wordlist、按鍵對應、自定功能表、執行命令、建立 toolbar、
建立巨集、檢視、指令碼... etc
重點是,裡面有些功能真的也沒 VC 做得好,
像是「自動完成結構」這功能還是有些問題。
好了,再讓你看幾張圖,你再決定要不要做這件事
pic-1 : 編輯環境 http://ppt.cc/fXGV (自動完成 都 亂來)
pic-2 : compiler 情況 http://ppt.cc/XydS (完全沒辦法 debug)
pic-3 : 資料夾長相 http://ppt.cc/UIJr (要再開時點開 proj.prj 即可)
-----------
會用 ultra-edit 看 code 的狀況與你不同,
純粹是單純只是看一、二個 sample code,
不想開 msvc,因吃太肥、開檔速度慢 (而且通常正常用),
用 notepad 開沒顏色看太累,最後研究一下,搞這東西出來
說了那麼多,最終是要建議,
放棄這個念頭吧,先仔細摸摸 VS IDE 怎麼用比較適合
不推的原因從上面找,應也找得到三、四個
以上,供參閱。
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.73.222
推
05/22 03:16, , 1F
05/22 03:16, 1F
→
05/22 03:16, , 2F
05/22 03:16, 2F
→
05/22 03:17, , 3F
05/22 03:17, 3F
推
05/22 07:59, , 4F
05/22 07:59, 4F
推
05/22 08:06, , 5F
05/22 08:06, 5F
→
05/22 08:07, , 6F
05/22 08:07, 6F
→
05/22 08:07, , 7F
05/22 08:07, 7F
→
05/23 08:31, , 8F
05/23 08:31, 8F
→
05/23 08:31, , 9F
05/23 08:31, 9F
推
05/23 09:00, , 10F
05/23 09:00, 10F
→
05/23 10:24, , 11F
05/23 10:24, 11F
→
05/23 10:24, , 12F
05/23 10:24, 12F
→
05/23 10:55, , 13F
05/23 10:55, 13F
→
05/23 11:14, , 14F
05/23 11:14, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章