我正在考慮一個程序的兩個選項。無論是C++與Boost異步IO或Java與異步NIO。我知道只要系統具有Java運行時,Java就是可移植的。我寧願使用C++和Boost,但我不確定我編寫的程序是否可以移植到不同的Windows計算機並仍然運行。我需要做些什麼來確保程序在運行時具有所有必需的依賴關係?我計劃只使用windows.h,C++ 2003標準和Boost庫。Boost Windows程序是否可移植到其他Windows系統?
3
A
回答
3
只要你使用Boost,C++標準庫(和CRT,如果你覺得你必須的話),你的代碼將非常容易移植。
請確保您避免使用任何微軟CRT擴展程序,例如str*_s
函數(例如here) - 不幸的是,MSDN不會很好地將它們標記爲非標準。
還要避免在Visual C++ v10中使用C++ 0x功能以最大限度地提高短期內的可移植性 - 或者檢查您打算使用的其他編譯器是否具有您計劃使用的功能。
小心:如果您使用了一堆windows.h
中的東西,那麼您將會破壞可移植性並增加您需要執行的工作。如果您希望稍後再移植,儘可能避免這種情況,並且如果您確實需要從那裏獲取任何內容,請嘗試將不同的「我需要在更改此端口時更改此屬性」標題和代碼文件中的用法隔離開來,以便您知道您在移植到另一個操作系統時只需查看代碼的子集。
6
boost和CRT可以靜態鏈接到您的可執行文件,所以根本不會有任何外部依賴。
相關問題
- 1. Dalvik是否移植到其他平臺(例如Linux,Windows等)?
- 2. 程序可移植性問題(Windows XP到Windows 7)
- 3. 移植的windows線程在Android操作系統上運行
- 4. Symfony2移植到Windows應用程序
- 5. 將Qt程序移植到Windows
- 6. 是否有可能將Windows Phone 7.0 Silverlight類庫移植到Windows 10移動中
- 7. 將Windows軟件移植到嵌入式/實時操作系統
- 8. 將Windows Phone 8應用程序移植到Windows 8中
- 9. 如何將Windows Phone 8應用程序移植到Windows Phone 8.1?
- 10. 將Windows窗體應用程序移植到Windows Phone 7.5 Mango
- 11. 將Windows-CE應用程序移植到Windows桌面
- 12. UWP應用程序可以移植到Windows 7嗎?
- 13. 文件系統是否影響應用程序的可移植性?
- 14. Windows移動應用程序開發Windows 7操作系統
- 15. 我可以將Windows CE應用程序移植到Windows Phone 8嗎?
- 16. 移植從Windows 8到Windows Phone
- 17. 將Windows Phone 7移植到Windows Phone 8
- 18. 將windows服務移植到windows azure
- 19. 將sched.h移植到Windows中
- 20. 從Linux移植到Windows,tm.sys
- 21. 從WP7移植到Windows 8
- 22. 從ios移植到windows
- 23. 從Xbox移植到Windows 8
- 24. 將Windows 8 Metro應用程序移植到Windows 10通用應用程序
- 25. PHP password_hash():密碼哈希是否可在系統之間移植?
- 26. Windows Azure - 可移植性和遷移?
- 27. 是否有一個可移植的C編譯器的Windows?
- 28. 將基於Windows的安裝程序擴展到其他操作系統
- 29. 是否有可能將iOS應用程序移植到Windows Store地鐵應用程序
- 30. 如何將可移植程序添加到Windows 10中安裝的程序?
哦,因爲boost庫是可移植的,所以它應該能夠靜態鏈接並在Mac OS X上構建XCode上的可執行文件應該在Windows上運行(只要在鏈接之前處理非可移植庫)...... ? – Aaron 2010-12-01 18:02:14
在你的問題中,你會談論不同的Windows平臺,但現在你對在Windows平臺上運行的Mac OS中創建可執行文件發表評論。你最初的意思是不同的操作系統?這會在一定程度上改變答案,儘管在一定程度上可以使用基本類似的代碼庫。 – Bart 2010-12-01 18:16:01