軟體的編譯和執行在不同平台執行
① 如何實現管理信息系統跨平台運行
跨平台泛指程序語言、軟體或硬體設備可以在多種作業系統或不同硬體架構的電腦上運作。 廣義面言,一般的計算語言都可做到跨平台,開發商只需要提供各種平台下的Runtime/中間件環境即可。嚴格而言是指用某種計算機語言編制的程序只需要做小量的修改,編譯之後即可在另外一種平台下運行,此時並不提供Runtime/中間件環境。 跨平台概念是軟體開發中一個重要的概念,即不依賴於操作系統,也不依賴硬體環境。一個操作系統下開發的應用,放到另一個操作系統下依然可以運行。相對而言如果某種計算機語言不用修改代碼即可做到高度跨平台,那麼此語言就越抽象,硬體控制力就越低,只適合開發高度抽象的模型系統。 現在支持多種作業的系統有linux、Windows xp等,同時支持多系統軟體開發的程式語言有C語言、C++、java、Perl、Delphi+Kylix、REALbasic、Visual FoxPro等。開發管理信息系統軟體可以通過Web的MIS系統、Microsoft公司的Visual FoxPro或者是C++,以及基於Linux平台的Qt/Embedded來開發。能進行跨平台的文件存取,是因為有各自平台下文件存取的庫。以此類推,各種跨平台問題,都需要各自的本地庫來解決。根據不同的跨平台問題,提供了許多不同的解決方案;類似的庫有許多,可以根據不同語言的跨平台開發,而採用相應的庫。
② VC++寫出來的軟體會不會只能在windows平台運行
VC++如果寫出的程序是基於控制台的程序,則可以在DOS或模擬DOS下運行.
VC++如果寫出基於API或MFC的程序,則只能在windwos下運行.
③ 用visual c 編出的程序如何在別的電腦上運行
使用visual c是微軟公司退出的c/c++語言編譯軟體,因此它所編譯出來的程序是微軟的exe運行格式。這種格式不能再除了windows以外的任何平台運行。當然,其他操作系統可以通過運行虛擬機來支持這種軟體。
一般情況下,windows開發的軟體只能在windows上運行。這是因為windows內置大量專用api,這些api在其他的操作系統上不存在,因此不能運行。
但是,對於沒有使用windows api的代碼可以通過在其他操作系統上的編譯軟體來運行。比如linux上的gcc編譯器,就能實現編譯。
下面是具體操作過程:
以著名的hello world程序為例,在linux的終端頁面輸入gcc -c hello.c(hello.c是你的代碼文件,當然目錄需要對),接著會生成hello.o的一個文件,接下來在終端輸入gcc -0 hello hello.o即可編譯成可執行文件。
同樣,以上編譯的軟體只能在linux平台運行,需要跨平台的軟體是需要多個語言的。企圖一份代碼通吃全平台是不現實的。
另附,在其他操作系統上的編譯軟體和語言
名稱 系統 語言
gcc linux c類
dev c++ windows c/c++
vs windows 幾乎所有語言
vc windows c/c++
free pascal windows/linux pascal
laser linux/windows pascal
delphi windows/linux pascal
xcode mac os object c/swift
等
④ 計算機軟體具有通用性,可以在不同的操作系統中運行對嗎
不是所有計算機軟體都具備通用性,大多數軟體在不同操作系統環境下或者依賴不同的運行環境,或者乾脆不能運行,舉例如下:
1. C語言系列(C,C++,C#)及匯編語言,開發的程序基本上都強依賴操作系統,在什麼操作系統上編譯,才能在什麼操作系統上運行,甚至對操作系統版本要求都很嚴格。匯編語言甚至要求硬體一致。
2. java類的程序,需要依賴jvm虛擬運行環境,只有在不同操作系統(各種linux,windows,macos,unix)上安裝配套的jvm環境(jsdk包),都可以正常運行。
3.python以及與之類似的腳本語言程序,需要安裝對應的解釋器,即可保證不同系統上可以運行。
⑤ 為什麼同一個軟體不能在不同的操作系統上運行
其實很簡單。比方說:一個中國人和一個外國人,使用的是完全不同的語言,那為什麼他們可以進行交流呢?那是因為有一個東東叫翻譯。不同操作系統下,即使不是同一個開發者開發的軟體,它們實現通訊或互動是基於統一的協議或標准。操作系統雖然千差萬別,但是對於輸入輸出標准卻是統一的。否則你干你的,我干我的,你說的我不懂,我做的你不明白,那不就亂套了?
另外,操作系統只是一個平台,實現功能靠的是應用軟體。同一公司開發的軟體,雖然基於不同的操作系統,但要實現的目的是一樣的,所以當然可以實現相互之間通信嘍;至於另一個問題,更簡單,不同品牌的不同軟體,所要實現的功能也是一致的,所以酷狗和QQ音樂都可以播放MP3。你沒聽說過有人用瑞星殺毒播MP3吧,因為那不是它該乾的活兒。
⑥ 請問下面的程序,編譯之後,是否可以【跨平台運行】呢
若在A平台編譯則理論上不可拿到B平台運行,除非在B平台重新編譯!典型例子就是Windows和Linux/Unix,但是這段程序無需修改就可以跨平台編譯。
⑦ 編譯執行和解釋執行的區別
一、主體不同
1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。

三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。
⑧ 為什麼C語言編譯器編出的軟體,只能在windows下運行
沒有這回事。
首先,C語言是編譯型語言。同樣的代碼,使用windows下的編譯器產生的可執行文件就只能在windows下運行,但是用linux下的編譯器編譯出來的可執行文件就可以在linux下面運行。因此跟你所處的環境有關,而跟C語言編譯器本質上並沒有太大的區別。
舉個例子,比如gcc編譯器,有windows版本,也有linux版本,用不同的版本編譯,就能運行於不同的環境。
然後說一下解釋性語言,比如java,所有的java代碼都運行於虛擬機jvm上,是靠jvm來解釋執行,jvm在這里也就充當了上面編譯器的角色(只能說類似)。所有java代碼可以直接跨平台執行,因為不同版本的jvm已經有人為我們做好了。
⑨ 什麼是編譯環境他的作用是什麼編譯環境跟運行平台有什麼不同
編譯環境是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。作用是通過代入預定義等程序段將源程序補充完整。
編譯環境跟運行平台區別為:工具不同、調試不同、硬體支持不同。
一、工具不同
1、編譯環境:編譯環境包含開發、調試和部署等工具。
2、運行平台:運行平台只包含運行指令和class實現的工具。
二、調試不同
1、編譯環境:編譯環境有調試代碼的功能,調試後可重新編譯執行。
2、運行平台:運行平台沒有調試代碼的功能。

三、硬體支持不同
1、編譯環境:編譯環境使用的是模擬設備,不需要硬體支持。
2、運行平台:運行平台需要硬體支持,在實際設備中運行。
⑩ 匯編語言的編譯器是運行在什麼平台上
機器可以識別的是高低電平,將高低電平用 0,1 來對應表達,就是二進制代碼
二進制代碼肯定是不便於記憶的,因此,為了便於記憶,將可以執行一項功能的二進制代碼段用一個符號來代替,就產生了匯編語言。
那麼匯編的過程,就是將這個符號還原成二進制代碼的過程。
這個過程,可以由人工來做,由機器來做...
那麼,我們的電腦上來完成這個過程的,就是傳說中的編譯器。
這個匯編的編譯器是怎麼做成的?是直接用二進制代碼0和1寫的嗎?
編譯器本身就是一個可執行程序。
編寫這個可程序,和編寫通常程序的過程相同,所以隨意用什麼語言來寫。然後再通過編譯,生成可執行程序。
那這個二進制的0、1是以什麼形式存放的,存放在哪裡?
可執行程序是什麼形式的,取決於操作系統。
存放形式,取決於存儲器的物理性質,可以肯定的是存放在存儲器。
如果用我們的電腦,怎麼輸入這些0、1,讓電腦識別?
用我們的電腦,需要通過輸入設備來輸入,通常為鍵盤、滑鼠...
過去就像樓上說的,也有用紙帶、撥碼開關或者其他什麼的。
----------------------------------------------
其實我就是想弄明白硬體和軟體是怎麼鍥和的,操作系統這個巨大的軟體可以直接在電腦硬體上運行,那其他軟體為什麼一定要在操作系統上才能運行呢?
其他的軟體不是一定要在操作系統上才能運行。只是,操作系統使軟體的運行不必考慮硬體的差別,也就是說,針對操作系統平台所編寫的程序可以適用於該操作系統可以運行的所有硬體平台,而不必針對每一個不同的硬體都編寫一個程序。
是不是要調用系統裡面的一些庫文件啊?如果是,那windows怎麼不需要啊?它怎麼能只憑自己在安裝時所帶的那一套各種各樣的文件就能在裸機上運行了呢?
WINDOWS本身就是操作系統...
那個,你要實在想明白這個問題,就看看計算機組成原理還有軟體工程的相關內容吧。
