Re: [軟體] 裝 visual studio 2010 會出問題嗎?

看板MAC作者 ((不要看這裏))時間12年前 (2013/04/08 22:09), 編輯推噓11(11026)
留言37則, 8人參與, 最新討論串2/2 (看更多)
※ 引述《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
再請教您: 若割了一個新的分割給win7裝VS,所有檔案與
04/08 22:18, 2F

04/08 22:23, , 3F
專案都放在bootcamp所產生的win7的C槽(懶得改了),不會
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
(因為只會為了寫那一科的作業而開VS..不會做其他事情)
04/08 22:25, 5F

04/08 22:30, , 6F
要裝很多OS各司其職 我個人習慣是裝VM
04/08 22:30, 6F
VM 好用 +1. 不過,因為我的工作需要動到硬體(更明確說是 GPU)。這裏 VM 或 Parallels 就幫不上什 麼麼忙了。 ※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 22:33)

04/08 22:31, , 7F
不過VM效率會隨時間久了降低也是事實 不過我就是包成一包
04/08 22:31, 7F

04/08 22:32, , 8F
用把SSD放外接盒帶來帶去 寫code的話也沒出過問題
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
問題是MBA 4G 跑VirtualBox 有點悲劇..冏
04/08 22:46, 10F
其實聽說還好。我同事用 MBA 跑 Parallels 中 win7 x64 2G 跑起來還行。猜想 Virtual Box 應該也是差不多。我是在 MBP 中用 Parallels, 覺得尚可。

04/08 22:52, , 11F
parallels跑起來跟virtualbox差很多 後者超慢
04/08 22:52, 11F
真有此事?(驚!!!)一會兒來試試。 ※ 編輯: cybergenie 來自: 182.55.91.156 (04/08 23:21)

04/08 23:34, , 12F
Parallels Desktop 最佳化做得非常好,甚至可玩 3D 遊戲
04/08 23:34, 12F

04/08 23:38, , 13F
PD我開著一兩天 只要都是長時間IO 效率都會打折
04/08 23:38, 13F

04/08 23:39, , 14F
其中有個process是PD相關的 會吃掉很多cpu使用量..
04/08 23:39, 14F

04/08 23:39, , 15F
不知道有沒有人碰到類似的問題 借機問一下
04/08 23:39, 15F

04/08 23:41, , 16F
我使用的用途是邊跑bt邊做spice運算 差不多跑超過10小時
04/08 23:41, 16F

04/08 23:42, , 17F
機器的風扇會開始狂轉 然後就會看到這個process吃掉cpu
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
我同時間公司另一台桌機i7 core全開給spice跑 一開始風扇
04/08 23:44, 21F

04/08 23:44, , 22F
就是爆炸狂轉...(是win)
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
paralles有好幾隻自己的kext,可以用intel的虛擬化
04/09 00:10, 23F

04/09 00:10, , 24F
技術,不知道這樣算不算底層,只知道會造成kernel
04/09 00:10, 24F

04/09 00:11, , 25F
panic XD
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
我用過核心數量去限制PD使用cpu資源避免全被吃光
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
其實底層的定義我以為是hack到類似ring0 protect權限才算
04/09 00:36, 28F

04/09 00:36, , 29F
基本上PD關於資源可以調整的排列組合我都用過了XD..orz
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
對osx沒研究過就不清楚了,要對os要拿到ring0是很難的
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
正解,所以我指非正規方式(by pass os限制)
04/09 01:01, 31F

04/09 04:43, , 32F
前三句聲明感覺仇恨很深阿
04/09 04:43, 32F
我也不想呀,可是您看 18006 篇就知道為什麼我要那樣寫了。小白無處不在呀。

04/09 06:14, , 33F
PD的磁碟存取會另外索取記憶體當快取,若是磁碟存取頻繁,
04/09 06:14, 33F

04/09 06:15, , 34F
我的經驗是就算32G也是有可能吃光光...
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
原來如此 concord這個分析 我認為極有可能
04/09 09:54, 35F

04/09 09:55, , 36F
我在MBA 8GB版本 和 MBP 16GB版本 很明顯MBP不容易發生
04/09 09:55, 36F
setrlimit 也許可以試。不過從討論區看起來參數不太好搞。 ※ 編輯: cybergenie 來自: 182.55.91.156 (04/09 11:15)

04/09 11:59, , 37F
crossover基於wine 基本上是不行的
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)
文章代碼(AID): #1HOi-Dxm (MAC)
文章代碼(AID): #1HOi-Dxm (MAC)