CROSS PLATFORM PITFALLS AND HOW TO AVOID THEMCROSS-PLATFORM PITFALLS AND HOW TO AVOID THEM Erika Sweet (she/her) Microsoft C++ TeamWelcome to CppCon 2020! Visit our table at the Expo Hall https://aka.ms/cppcon/expo • Meet the Microsoft C++ Abdicating responsibility to CMake Reimplementing functionality that CMake has built-in to abstract platform and compiler specificsUse built-in CMake command line tools…. execute_process(COMMAND ${CMAKE_COMMAND} rget PUBLIC cxx_std_11) …instead of manually setting flags via CMAKE_CXX_FLAGSKeep your paths platform independent…. target_include_directories(myTarget PUBLIC $0 码力 | 67 页 | 360.44 KB | 6 月前3
Cross-Platform Floating-Point Determinism Out of the Box(Sort of) 2 3Why FP Determinism is Important?_ CppCon 2024 sixit:: 5 ✅ Same Executable Cross Platform Different Contexts ❌ ❌ 1 (Sort of) 2 3 General Sanity, Testability Distributed Simulations using the identically compiled files and run on systems that adhere to the IEEE standards. Cross platform synchronized network simulations or replays will not possible [sic].” - Most upvoted answer0 码力 | 31 页 | 3.88 MB | 6 月前3
High-Performance Cross-Platform Architecture: C++20 Innovationscareer in video games and embedded software • Started using C++ in 1995 • First cross-platform project in 1994Cross-Platform Architecture Goals • Take advantage of all platforms • Focus on the compiler classes, an illustrative example from a larger project • Project build issues • Inclusion of platform-specific header files • Concept hierarchies • Class and Function DesignOCP: The Open–Closed Principle Adding new revisions to a feature has no effect on previously-implemented revisions.What is a Platform? • A specific set of features • A feature is an abstract unit of functionality requiring implementations0 码力 | 75 页 | 581.83 KB | 6 月前3
Conan 1.26 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 142 11 Systems and cross building 145 11.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 15.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 286 15.10 How to reuse Python code in powerful features of Conan is that it can create and manage pre-compiled binaries for any possible platform and configuration. Using pre-compiled binaries and avoiding repeatedly building from source, save0 码力 | 669 页 | 5.51 MB | 1 年前3
Conan 1.24 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 134 11 Systems and cross building 137 11.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 15.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 276 15.10 How to reuse Python code in powerful features of Conan is that it can create and manage pre-compiled binaries for any possible platform and configuration. Using pre-compiled binaries and avoiding repeatedly building from source, save0 码力 | 647 页 | 5.31 MB | 1 年前3
Conan 1.31 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 160 12 Systems and cross building 163 12.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 16.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 318 16.10 How to reuse Python code in including Windows, Linux, OSX, FreeBSD, Solaris, and others, and it can target any platform, including desktop, server, and cross-building for embedded and bare metal devices. It integrates with other tools0 码力 | 721 页 | 5.41 MB | 1 年前3
Conan 1.39 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 182 13 Systems and cross building 185 13.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 17.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 340 17.10 How to reuse Python code in including Windows, Linux, OSX, FreeBSD, Solaris, and others, and it can target any platform, including desktop, server, and cross-building for embedded and bare metal devices. It integrates with other tools0 码力 | 819 页 | 7.05 MB | 1 年前3
Conan 1.42 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 180 13 Systems and cross building 183 13.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 17.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 342 17.10 How to reuse Python code in including Windows, Linux, OSX, FreeBSD, Solaris, and others, and it can target any platform, including desktop, server, and cross-building for embedded and bare metal devices. It integrates with other tools0 码力 | 841 页 | 7.12 MB | 1 年前3
Conan 1.25 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 138 11 Systems and cross building 141 11.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 15.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 282 15.10 How to reuse Python code in powerful features of Conan is that it can create and manage pre-compiled binaries for any possible platform and configuration. Using pre-compiled binaries and avoiding repeatedly building from source, save0 码力 | 655 页 | 5.45 MB | 1 年前3
Conan 1.41 DocumentationContinuous Integration, isolation . . . . . . . . . . . . . . . . . . . 180 13 Systems and cross building 183 13.1 Cross building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [EXPERIMENTAL] . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 17.9 How to use Docker to create and cross-build C and C++ Conan packages . . . . . . . . . . . . . . . 342 17.10 How to reuse Python code in including Windows, Linux, OSX, FreeBSD, Solaris, and others, and it can target any platform, including desktop, server, and cross-building for embedded and bare metal devices. It integrates with other tools0 码力 | 835 页 | 7.10 MB | 1 年前3
共 158 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16













