⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 platforms.texi

📁 A C++ class library for scientific computing
💻 TEXI
字号:
@node platforms@section Platform/compiler notesFor up-to-date information on supported platforms, please consultthe platforms area on the Blitz++ home page:@uref{http://oonumerics.org/blitz/platforms/}The information in this document may be out of date.@subsection KAI C++ for Linux/Unix@cindex KCC compilerBlitz++ was developed and tested using KAI C++ under AIX.  It should (intheory) port to other KAI C++ platforms (Cray, SGI, HP, Sun, Linux, Compaq)without difficulty.  Since KAI C++ uses an EDG front end, other EDGfront-ended compilers (e.g. Comeau) should be able to compile Blitz++.Recommended compile flags are:@example+K3 -O2 --restrict --abstract_pointer --abstract_float -tused@end exampleNote that you cannot compile with @code{-tall} (this will generate lots oferrors).Under Linux, you may need the flag @code{-D__signed__=}.  You should omit@code{-tused} since this template instantiation model is not supported by@code{gcc}, which is used as the back-end compiler.Please note that since the purchase of KAI by Intel several years ago, the use of this compiler has been gradually phased out, with most of the KAIcompiler technology being transferred into the Intel C/C++ compiler.  Thus,Blitz++ is no longer being routinely tested under @code{KCC}.@subsection Intel C++ for x86@cindex Intel C++ compilerBlitz++ compiles under fairly recent versions of the Intel C++ compiler(version 7.1, 8.x or 9.0) for Linux platforms, as well as the comparable plug-in compiler for Windows that can be used within the Microsoft Visual Studio IDE.  We recommend use of the @code{-ansi} flag for compileradherence to the ANSI C++ standard.  The @code{-strict_ansi} flag is notused, as this can lead to many compiler error messages originating fromcode in the GNU C++ standard library header files.More information:@uref{http://www.intel.com/software/products/compilers/clin}@uref{http://www.intel.com/software/products/compilers/cwin}@subsection Microsoft VS.NET 2003 for Windows@cindex Microsoft VS.NET 2003 C++ compilerBlitz++ has been ported to the C++ compiler within the Microsoft VS.NET 2003compiler and IDE package.  We provide a zip archive containing an appropriate configuration header file and project files for building the Blitz libraryand all of the testsuite codes.  Previous versions of the Microsoft C++compiler within Visual Studio do not have the required C++ features neededby Blitz++ and are not supported.  Blitz can be compiled under Visual Studioby using the Intel plug-in C++ compiler for Windows.@subsection gcc for Linux/Unix/Darwin@cindex g++ compilerGCC (@code{g++}) is a free @acronym{GNU} C++ compiler.  It compiles Blitz++reliably on almost any platform running Linux or another Unix variant (including the Darwin OS).  In fact, most Blitz++ development work is done with @code{g++}.Work has been done in the latest Blitz++ release to ensure compatibilitywith the gcc-4.x release, which contains some key changes in enforcement of the C++ ANSI standard related to the use of anonymous enums.gcc may be downloaded from @uref{http://www.gnu.org/software/gcc/gcc.html}.If you are using gcc under Solaris, SunOS, or OSF/1, please see the@file{README.binutils} file included in the distribution.@subsection PathScale for x86_64@cindex PathScale pathCC compilerWe have just added support for the PathScale pathCC compiler in blitz-0.9.This compiler is being provided on many of the newer Opteron x86_64 systems.We welcome feedback on support for this compiler.@subsection PGI for Linux x86@cindex PGI pgCC compilerThe Portland Group PGI compiler is supported on Linux x86 platforms, and more recent versions of pgCC such as 5.x are capable of compiling blitz.However, performance is not particularly good and PGI support is not being actively tested or maintained.@subsection Absoft for Mac OS X@cindex Absoft xlc++ compilerAbsoft markets a variant of the IBM xlC compiler called @code{xlc++} that has been ported to the Darwin operating system (Mac OS X).  We are providingsupport for compiling blitz using this compiler.  Although we have noted and reported some bugs with this compiler, it is capable of producing fairlyhigh quality optimized code for the Darwin platform.@subsection Metrowerks for Mac@cindex Metrowerks compilerMetrowerks is sort-of supported; see the platforms web page and the mailinglists for more information.  Support for Metrowerks is no longer being actively maintained.@subsection Compaq Alpha @cindex Compaq cxx compilerThe Compaq C++ compiler version 6.x is supported, and we recommend use ofthe @code{-model ansi} flag in order to obtain standard C++ compiler behaviorand proper name mangling.  We have inserted a workaround for the lack ofstandard ostream support for the @code{long double} type.  At this point,performance of blitz code under the cxx compiler is somewhat disappointing.@subsection IBM RS6000/IBM PowerPC@cindex IBM xlC compilerThe IBM Visual Age C++ compiler is supported as of version 6.x.  However,you may run into a variety of annoying compiler bugs that prevent certain portions of the Blitz++ library code from compiling.  Therefore, it is strongly recommended that you obtain xlC version 7.0.0.3 or later, in orderto get all the necessary patches that IBM has produced in response to our bug reports.  Also note that compile times can be fairly long with fulloptimization enabled.@subsection SGI MIPSpro@cindex SGI CC compilerThe SGI MIPSpro-7.x version CC compiler is supported, although active testingis no longer being done.@subsection Sun SPARC@cindex Sun Studio CC compilerAs of version Sun Studio 10.x, the Sun CC compiler should be capable ofcompiling blitz.  However, no active support is being provided.@subsection Cray T3E/Cray T90/Cray C90/Cray J90@cindex Cray CC compilerAs of Version 0.2-alpha-02 of Blitz++, Version 3.0.0.0 of the Cray C++compiler is supported (well, tolerated anyway).  It seems to be based on anolder version of the EDG front end, so some kludges are required.  Itdoesn't support partial ordering of member templates, so slicing arraysrequires the workaround described in Section @ref{Slicing combo}.  Portionsof the standard library are missing, such as @code{<limits>},@code{<complex>}, and @code{<set>}.  This means you won't be able to usecomplex numbers (well, not the ISO/ANSI C++ versions anyway), numericinquiry functions, or fast traversal orders.These compilation flags are recommended:@example-h instantiate=used@end exampleFor optimization, you'll want:@example-O3 -h aggress@end exampleThe ability of the Cray C++ compiler to optimize away temporary objects isdisappointing.  It's not able to optimize away expression templates overheador comma-delimited array initializers.  Please note that support for compilingBlitz++ under the Cray C++ compiler is no longer being actively maintained.@subsection Fujitsu@cindex FujitsuThis platform and compiler are no longer being actively supported.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -