2010-05-05 105 views
3

我目前正在構建一個小的JIT編譯器。 對於語言,我需要一些運行時庫來處理一些特殊的數學函數。 我認爲最好的方法是將lib編譯爲位碼並將其鏈接起來。 編譯器應該集成在產品中,因此它必須在windows(VC10,64位)下工作。LLVM:用於Windows的llvm-gcc(mingw)的bitcode

那麼有可能用mingw構建數學庫llvm-gcc稍後用JITed Code構建一個鏈接? 或者在使用mingw時使用llvm-gcc構建代碼的可移植性方面是否存在任何問題? 如果有問題,你會建議什麼解決方案?

回答

0

位碼是可移植的格式(至少在相同的架構下);在Windows中生成的位碼和在例如Linux或Cygwin中生成的位碼之間沒有區別。

+0

你確定嗎? 我在FAQ中讀到,位碼不是平臺無關的。 – SteffenG 2010-05-05 21:03:09

+0

這意味着你不能在你的X86系統上使用ARM的位碼,或者在X86/32上使用X86/64的位碼(不同大小的長整數/整數,其他調用約定,不同的結構對齊等) 另外,他們對包含文件不同。只要你只使用標準C中存在的win32和數學函數(沒有特定的cygwin),你就可以安全。 – wump 2010-05-05 22:55:31