Re: [軟體] 裝 visual studio 2010 會出問題嗎?
※ 引述《mercedesff (mercedesff)》之銘言:
: 想請問一個問題,因為作業要用到VS2010 (堅持不裝M$一年之後現在妥協了 冏)
: OS X 為10.8,如果要裝VS2010,我會先bootcamp win7 或 win8,才裝VS2010
: 但問題是
: 我曾經看過有同學 建立專案的時候 為了要連結 *.lib 和 *.h,
: 就是在專案的屬性那邊做某些變動、做某些函式庫的連結,出問題了
: 雖然很有可能是那位同學自己本身就把屬性設定錯誤,或是code打錯 之類的
: 但看到這景象,就會怕裝了vs2010後會有一些莫名的隱藏bug...
: (之前好像看過板上有討論說 OS X 裝 win7 寫程式會有某種莫名的連結bug...)
: 所以想請問 有人安裝vs2010後,寫程式、建專案、建立某些連結,有問題過嗎?
(用英文鍵盤上BBS,中打很慢.中英文夾雜請見諒)
(因身在番邦沒有高貴中文鍵盤可用所以只好用英文鍵盤)
(以上是給看到中英夾雜文會不爽的清高人士看的。不爽請左鍵滾出去。其它人請繼續)
Microsoft Visual Studio 2010 是只有在 Microsoft Windows 中才能使用的產品。
要在 Mac 中使用它,只有三種方法:
1. BOOTCAMP
2. Parallels/VM/Virtual Box/etc...
3. Crossover (沒試過不確定可不可行)
BOOTCAMP 是讓 Mac 可以安裝 Windows 的一套..呃..程式集。它其實是一堆 Device
Drivers. 在 BOOTCAMP 中,一般來說,跟其它 PC 是沒有不同的。
Parallels 是一套 Emulator, 用來模擬一整個 PC。也就是說,在 Parallels 中,所有的
CPU 指令會被 Parallels 轉換到 MAC 中加以執行之。可想而知比起 BOOTCAMP,
Parallels 要慢一些..
Crossover 情況比較複雜。有時間再解釋。
不管是 BOOTCAMP 或是 Parallels, 程式沒有透過 kernel level,是沒有辦法取得更低階
的存取權限。也就是說,您的同學若不是在寫驅動程式的話,是不會因為在 BOOTCAMP
或者 Parallels 中就造成程式問題的。
唯一的可能是,若您也跟敝人一樣,用一個獨立的 partition 來存資料。那麼很有可能
在 BOOTCAMP 跟 Parallels 之間轉換時,該 partition 的 driver label 會不同。
那麼 project 中的 lib/inc path 就有可能會有問題。前題是,您或者您同學必需跟敝人
一樣,會在 BOOTCAMP 與 Parallels 之間頻繁地轉換才有可能出問題的。而這其實也有解
決方法。改用變數來描述 lib/inc path 就可以。其實最佳方法還是不要用 vs project
files, 改用 CMake 產生 Makefiles 或是 project files 才是比較好的作法。
在我看起來,您同學的問題比較像是對 VS2010 的 Project Configuration 本身了解不夠
。這跟是否使用 Mac, BOOTCAMP, Parallels 是沒有關係的。
以上。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 182.55.91.156
※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 22:13)
推
04/08 22:15, , 1F
04/08 22:15, 1F
推
04/08 22:18, , 2F
04/08 22:18, 2F
→
04/08 22:23, , 3F
04/08 22:23, 3F
→
04/08 22:24, , 4F
04/08 22:24, 4F
是的。並且 Apple 原則上將 BOOTCAMP 視為 temporary solution. 所以最好是井水不犯
河水。
不過我個人是覺得為了備份容易些以及考慮到常要重裝 OSes (工作上需要裝3-4個 Oses
在 Macbook 中), 資料的部份我仍然是放在一個獨立的 partition 中。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 22:29)
→
04/08 22:25, , 5F
04/08 22:25, 5F
→
04/08 22:30, , 6F
04/08 22:30, 6F
VM 好用 +1.
不過,因為我的工作需要動到硬體(更明確說是 GPU)。這裏 VM 或 Parallels 就幫不上什
麼麼忙了。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 22:33)
→
04/08 22:31, , 7F
04/08 22:31, 7F
→
04/08 22:32, , 8F
04/08 22:32, 8F
原原 PO 似乎只需要用一兩次的 Windows. 也許免費的 Virtual Box 也是方法之一。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 22:41)
推
04/08 22:45, , 9F
04/08 22:45, 9F
→
04/08 22:46, , 10F
04/08 22:46, 10F
其實聽說還好。我同事用 MBA 跑 Parallels 中 win7 x64 2G 跑起來還行。猜想 Virtual
Box 應該也是差不多。我是在 MBP 中用 Parallels, 覺得尚可。
→
04/08 22:52, , 11F
04/08 22:52, 11F
真有此事?(驚!!!)一會兒來試試。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 23:21)
→
04/08 23:34, , 12F
04/08 23:34, 12F
推
04/08 23:38, , 13F
04/08 23:38, 13F
→
04/08 23:39, , 14F
04/08 23:39, 14F
→
04/08 23:39, , 15F
04/08 23:39, 15F
→
04/08 23:41, , 16F
04/08 23:41, 16F
→
04/08 23:42, , 17F
04/08 23:42, 17F
→
04/08 23:43, , 18F
04/08 23:43, 18F
→
04/08 23:43, , 19F
04/08 23:43, 19F
→
04/08 23:43, , 20F
04/08 23:43, 20F
→
04/08 23:44, , 21F
04/08 23:44, 21F
→
04/08 23:44, , 22F
04/08 23:44, 22F
這個應該是 OS 中資源分配的關係。因為 CPUs processes 之間的 switch 是很複雜的
scheduling 問題。所以很多時候會跟據過去一段時間中每個 process 需求的不同而作調
整。我並不完全了解 OSX 與 Parallels 內部的運作機制。但猜想當運作一段時間後,
OSX發現 Parallels 很需要資源,所以自然就多給他一些。
我猜想您也許在 Parallels 中給他少一點的 CPU 數量反而可以讓 Parallels 與 OSX
之間更加順暢。例如我發現我的 MBP 中有 8 個 CPU,但給 Parallels 最好不要超過兩個
。否則兩邊都會很累。原因是,作為 host 的 OSX 資源不足的話,作為 client 的
Parallels 日子當然不會太好過的。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 00:14)
推
04/09 00:10, , 23F
04/09 00:10, 23F
→
04/09 00:10, , 24F
04/09 00:10, 24F
→
04/09 00:11, , 25F
04/09 00:11, 25F
應該要反過來說。Parallels 就是利用 intel virtualization 實作出來的。那些 kext
(kernel extension) 是讓 Parallels 進入 virtualized X86 的門路。
kernel extension 也是 kernel 的一部份 (micro kernels 都是這樣作). 自然要搞到
kernel 慘叫也不是不可能的 XD.
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 00:30)
推
04/09 00:31, , 26F
04/09 00:31, 26F
→
04/09 00:32, , 27F
04/09 00:32, 27F
原來是幾核心呢?pd中又用多少?
optimization 有一個選項是 fast virtual machine/fast mac. 有沒有試試看呢?
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 00:35)
推
04/09 00:36, , 28F
04/09 00:36, 28F
→
04/09 00:36, , 29F
04/09 00:36, 29F
"底層"只是口語上的講法。在 kernel 中應該要進入 ring0 不是太大的問題。
那就好像無解了。我要作比較巨量的計算都是用 BOOTCAMP 或是 ubuntu. 極端一點還用
single user mode 來避免浪費。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 00:40)
推
04/09 00:46, , 30F
04/09 00:46, 30F
OS 是有 "義務" 要限制 Applications 取得 ring0 權限。但 kernel 本身就是 OS 的核
心。所以它必須要能夠存取 ring0 權限。這是我對 OS 的了解。有錯請不吝指正。基本上
若有 hackers 能夠搞出 kernel extension (或者是 linux 中的屬於 kernel 的 so,或者
是 win 中的 .drv, .sys) 並且騙過 users 去安裝它,那基本上它是要怎麼搞都可以的。
只是若僅是要 hacking 後取得 user 權限是不用這麼麻煩就是了。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 01:02)
推
04/09 01:01, , 31F
04/09 01:01, 31F
→
04/09 04:43, , 32F
04/09 04:43, 32F
我也不想呀,可是您看 18006 篇就知道為什麼我要那樣寫了。小白無處不在呀。
→
04/09 06:14, , 33F
04/09 06:14, 33F
→
04/09 06:15, , 34F
04/09 06:15, 34F
有道理。剛又檢查了一下,PD只能設給自機虛擬機的 memory 量。而無法限制自已在 OSX
的用量。如此可能可以在 launchd.conf 中設定 stack 的量:
limit stack 67104768 67104768
這些值跟 linux ulimit 一樣意思。
不我不很確定 10.8.3 能不能也這樣弄就是了。
推
04/09 09:54, , 35F
04/09 09:54, 35F
→
04/09 09:55, , 36F
04/09 09:55, 36F
setrlimit 也許可以試。不過從討論區看起來參數不太好搞。
※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 11:15)
推
04/09 11:59, , 37F
04/09 11:59, 37F
http://www.codeweavers.com/compatibility/browse/name?app_id=7319
codeweavers 有給不很清楚的安裝方法,理論上可以安裝,但好像沒有很多人試成功過.
※ 編輯: cybergenie 來自: 121.7.173.217 (04/09 13:32)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):