A. 為什麼libsvm不同語言版本以及在不同系統上的運行結果不一致
這個問題是因為你的matlab是64位的版本,現在libsvm針對64位系統單獨做了封裝。在libsvm下有一個window目錄,libsvm\windows\*.mexw64。直接將libsvm\windows載入到matlab運行路徑上就可以了。無需編譯!
B. 不同的c語言編譯系統差別在哪裡代碼是否 存在兼容性的問題
ANSI
C
一般都可以支持,但也涉及到不同版本的C標準的兼容性問題,比如VC6不支持C99,VS2003,2005,2008,20120等就可以部分支持C99標准;而且很多標准並沒有規定實現,不同的編譯器實現可能不同,比如C標准只規定了short<=int<=long,但並沒有規定位元組數,導致不同的編譯器數據類型的大小各不相同。
非
ANSI
C標準的話,不同的編譯器一般都有不同的實現,需要分別實現。
在移植到不同編譯器的時候這些都要注意處理,比較常規的做法是數據類型和函數等自己根據不同編譯器封裝成一個統一的格式,在程序中使用封裝後的數據類型或函數,而不要使用原生類型,這樣在移植時只需要在封裝的地方根據編譯器的不同進行修改就可以了,不需要再修改源代碼。
C. pb中在pb環境下運行的程序和編譯的程序不一樣怎麼解決(註:和數據窗口無關)
我用的環境是WindowsXP系統,PowerBuilder9在調試時使用的是Windows經典樣式,它是不管系統的顯示樣式如何設置的,所以當系統顯示樣式設置成其它樣式時,編譯後的程序運行界面就與調試時顯示的界面就可能會出現差異。
其實,這種差異並不是一種「錯誤」,只是顯示時因樣式變化而出現的走樣。如果是WindowsXP系統,將顯示樣式設置成Windows經典樣式,可以確保兩種試運行時界面顯示一樣。
D. 我的java編譯環境和運行環境版本 不一致
把環境變數path里的jdk1.6放到1.4版本的前面,這應該是你裝oracle或其它軟體整的!
E. C語言同一段代碼,同樣的文件,編譯器為什麼運行結果不一樣
有如下幾種可能:
1 代碼運行的平台硬體不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬體最底層就是不同的,而C語言是一門和底層相關性極大的語言,在不同的硬體上運行出不同結果是很正常的。
2 代碼運行的系統不同。
相同CPU在不同操作系統上跑相同代碼時,一樣會出現不同的結果。這是由於系統底層的實現不同造成的。比如linux和Windows,在底層處理上就有一定的差異。
3 編譯器不同,同時代碼中使用了C規范未定義規則的語句。
C語言規范並沒有對C語言的所有行為做定義,所以相同語句,不同編譯器的運行效果可能有所不同。比如同樣的sizeof(int),在16位編譯器上結果為2,而32位編譯器上就會是4。
4 代碼獲取到的外部數據不同。
比如運行代碼時獲取到的其它輸入不同,包括程序中獲取的環境變數,實時信息,以及各種外部輸入等,均有可能出現不同。
比如在做隨機數時,如果以當前時間設定隨機數種子,由於每次的時間是不同的,同一個程序每次運行的結果都是不同的。
F. 我在linux環境下怎麼就是編譯不成功
你這個問題問得太模糊。你問的應該也不是一個簡單的c語言或者其他語言寫的代碼(就一個文件)的編譯問題。
同樣一套代碼,在不同的系統下面,是不一樣的,在windows下面能過,在linux下不一定能過,在linux下能過,在unix下不一定能過,在suse
linux下能過,
在red
hat
linux下不一定能過,
在ubuntu
14.04
linux
下能過,
在ubuntu
12.04
linux
下不一定能過.
編譯環境不同,編譯結果就可能會不同。編譯環境大致相同,編譯結果都可能不一致,例如python,
版本不一致,gcc,
arm
rvds版本不一致,
perl版本不一致,
make
版本不一致,編譯結果都可能不一致。
解決編譯問題的基本方法就是看編譯錯誤,從錯誤入手。另一個基本方法是,與能編譯過的系統對比環境,一點一點找問題。
編譯環境不是一句話可以說清楚的。舉個例子:有興趣可以看看android的編譯,網上的資料很多。
G. 易語言用不同版本的VCLinker編譯的程序在不同操作系統上的兼容性問題
易語言在靜態編譯時,不會將該程序所使用的dll文件打包到發布的PE版中,其編譯後的程序在運行時將自動在當前目錄和Windows\system32文件下尋找。
由於XP精簡版沒有這個kernel32.dll文件,所以當你程序所使用的dll文件,在其他操作系統中不存在時, 該程序不能運行。
解決辦法:在發布軟體時,考慮到操作系統是否有本程序使用到的這些dll文件,要將操作系統沒有的dll文件也一且進行發布(可以存放在該發布軟體的執行文件的同一目錄中)
H. 同一個 Java 文件用不同的 jdk 編譯出的 class 文件是一樣的嗎
不一樣
不同點主要體現在兩個部分:
1、每個class文件的開頭幾個位元組中有標識jdk版本的數值信息,這個應該不一樣,比如jdk5編譯的是49,jdk6編譯的是50;javac 有兩個參數是 -source <版本> 和 -target <版本>,一般來說,如果target相同的話,編譯出來的class文件時完全相同的,但是反之則不一定相同
2、有些編譯器在編譯時會進行優化,比如將static final的常量直接inline到使用該常量的地方
I. 為什麼編程錯誤呢不管是按照書上的樣式寫上去或者從網上復制,都是錯的!
這個原因很多的,可能是使用的編譯器不一樣,版本不一樣,系統不一樣,缺少插件什麼的原因,把原理看懂了自己在寫一個就行了,別CVS。