by An Le, technical consulting engineer, and Max Domeika, technical consulting engineer, Intel Corp.
Unless you built your application using GNU C/C++ on UNIX, migrating from UNIX to Linux will most likely also involve switching compilers. This introduces a host of challenges such as changing compiler flags, makefiles, and the build process, while ensuring continued optimal performance. SourcePro C++ allows the developer to automatically generate new makefiles for the low-level infrastructure code when you change platforms. Achieving the maximum potential of SourcePro C++ requires a compiler capable of producing highly optimized code. The Intel® C++ Compiler simplifies migration from UNIX to Linux by offering a very high level of conformance to the ANSI/ISO C++ standard, and advanced compiler optimizations that are used on UNIX systems.
Optimization procedures include inter-procedural optimizations, profile guided optimization, as well as processor specific optimizations that can ensure better performance. Because the Intel C++ Compiler is binary compatible with GNU C/C++ on Linux, this allows developers to build performance-critical libraries used by their applications with the Intel C++ Compiler to gain additional flexibility when porting applications from UNIX to Linux. Learn more about the best techniques to ensure ease in compiler transition, while gaining the best possible performance on your Intel® processor-based Linux platform.
Rogue Wave SourcePro C++
Rogue Wave SourcePro C++ is an integrated set of cross-platform, object-oriented C++ components based on the International Organization of Standards (ISO) and the American National Standards Institute (ANSI) standards. Rogue Wave SourcePro C++ products are provided with full source code and pre-built versions of the libraries. SourcePro C++ includes four primary components:
- SourcePro Core—Fundamental C++ components
- SourcePro DB—Components to provide relational database access in C++
- SourcePro Net—Components for network and Internet communication
- SourcePro Analysis—Components for business and scientific analysis
Intel C++ Compiler
The Intel C++ Compiler for Linux offers excellent compatibility with GNU C/C++ and most Linux software utilities and contains advanced optimization features to easily maximize application performance. The advanced optimization features of the Intel C++ Compiler for Linux include high floating-point performance, inter-procedural optimization, profile-guided optimization, and vectorization support for processor specific instruction sets on Intel® architecture. Since the Intel C++ Compiler for Linux is compatible with the GNU C/C++ compiler, and both the Intel C++ Compiler and the Rogue Wave SourcePro C++ components are ISO- and ANSI-standard compliant, developers can minimize compatibility and migration issues. By compiling SourcePro C++ components with the Intel C++ Compiler, the libraries created can be custom built to specifically target the architecture and to maximize performance of desired applications on Intel architecture.
ISO conformance
Two widely used languages for software development are C and C++. Each of these languages has been standardized by various organizations. For example, ISO C conformance is the degree to which a compiler adheres to the ISO C standard. Currently, two ISO C standards are commonplace in the market: C89i and C99ii. C89 is currently the de facto standard for C applications; however use of C99 is increasing. The ISO C++iii standard was approved in 1998. The C++ language is derived from C89 and is largely compatible with it; differences between the languages are summarized in Appendix C of the ISO C++ standard. Very few C++ compilers offer full 100% conformance to the C++ standard due to a number of somewhat esoteric features such as exception specifications and export template. The Intel C++ Compiler offers a high degree of conformance.
The Intel compiler has a unique challenge in maintaining compatibility with other available compilers and functioning with these other compiler’s header files and libraries while also maintaining compatibility with the language standard. In order to accommodate these needs, the compiler in its default mode is compatible with these other compilers. On Linux, the Intel C++ Compiler is interoperable with the GNU g++ compiler. The Intel compiler also provides options to conform more closely to the ISO standard. These options are summarized as follows:
| Compilation Mode | Description | |
| Default | Compatibility with GNU C++ compiler | |
| -ansi | Compatibility with GNU C++ compiler's definition of ISO conformance | |
| -strict_ansi | Intel C++ Compiler definition of ISO conformance | |
| -[no-]c99 | C99 conformance and feature support | |
| -std=c89 | C89 conformance and feature support |
![]()
If you're interested in this topic, these articles may be helpful:
![]() | Intel® Fortran Compiler 9 for Linux Deliver outstanding performance on single and multiprocessor computers... |
![]() | Linux in Narrow Victory Over Windows We talk a lot about the number of devices that are being built around ... |
![]() | Linux security administrator's guide, part 1 by David Wreski, president and CEO, Guardian Digital Inc. This do... |
![]() | Embedded development - QNX or Linux? by Thomas W. Burger. Intel Corp. In the late 1990s, the Web applian... |
![]() | Linux Unwired by Roger Weeks, Edd Dumbill and Brian Jepson, O'Reilly This O'Reill... |
![]()
Related Jobs:
![]() | Software Development Engineer #151253 - WA - Redmond - Microsoft Corporation Dynamic languages like Python, Ruby, PHP, and JavaScript are becoming ... |
![]() | Software Engineer - CA - San Jose - CoWare Job Description Duties & Responsibilities Responsible for the desig... |
![]() | Software Development Engineer in Test #133187 - WA - Redmond - Microsoft Corporation The Visual C++ QA team is looking for an individual passionate about s... |
![]() | Software Development Engineer #132584 - WA - Redmond - Microsoft Corporation Come help us make the Common Language Runtime (CLR) the world?s best p... |
![]() | Applications Developer 2 #IRC296735 - CA - Redwood Shores - Oracle As a member of the software engineering division, you will perform det... |
![]() | Senior Software Engineer - CA - San Jose - CoWare Job Description Duties & Responsibilities Responsible for the desig... |
![]() | Software Development Engineer #151087 - CA - Mountain View - Microsoft Corporation The Macintosh Business Unit is looking for an exceptional software eng... |
![]() | Software Development Engineer #143309 - WA - Redmond - Microsoft Corporation Come help us define and deliver the compilation technology for the Com... |
![]() | Senior R&D Engineer II #4119 - CA - Sunnyvale - Synopsys, Inc. ReqCode: 4119 Position: Senior R&D Engineer II Location: US02-Sunnyv... |
![]() | Software Development Engineer #151086 - CA - Mountain View - Microsoft Corporation The Macintosh Business Unit is looking for an exceptional software eng... |


