How LAPACK library enables Microsoft Visual Studio support with CMake and LAPACKE
|
|
|
- Marshall Weaver
- 9 years ago
- Views:
Transcription
1 How LAPACK library enables Microsoft Visual Studio support with CMake and LAPACKE Julie Langou 1, Bill Hoffman 2, Brad King 2 1. University of Tennessee Knoxville, USA 2. Kitware Inc., USA This article is an extended version of the blog Fortran for C/C++ developers made easier with CMake posted on the Kitware blog at This extended version is intended especially for Fortran library developers and includes many useful examples available for download. LAPACK is written in Fortran and offers a native Fortran interface simple enough to interoperate with other languages. Recently, INTEL Inc and the LAPACK team developed a C- language API for LAPACK called LAPACKE 1 to guarantee LAPACK interoperability with C. However, many developers are either unfamiliar with the non-trivial process of mixing C and Fortran together or develop with Microsoft Visual Studio which offers no builtin Fortran support. Starting with LAPACK 3.3.0, the LAPACK team decided to join forces with Kitware Inc. to develop a new build system for LAPACK using CMake 2. This fruitful collaboration gave LAPACK the ability to easily compile and run on the popular Linux, Windows, and Mac OS/X platforms in addition to most UNIX-like platforms. In addition, LAPACK now offers Windows users the ability to code in C using Microsoft Visual Studio and link to LAPACK Fortran libraries without the need of a vendor-supplied Fortran compiler add-on. CMake Fortran Features The CMake build system contains many powerful features that make combining Fortran with C and/or C++ easy and cross-platform. Automatic detection of Fortran runtime libraries required to link to a Fortran library into a C/C++ application. Automatic detection of Fortran name mangling required to call Fortran routines from C/C++. Automatic detection of Fortran 90 module dependencies required to compile sources in the correct order. (This is not needed by LAPACK.) Windows: Automatic conversion of Fortran libraries compiled with MinGW gfortran to.lib files compatible with Microsoft Visual Studio. Windows: Seamless execution of MinGW gfortran from within Visual Studio C/C++ projects to build Fortran libraries. The following describes how to apply these features to any CMake project requiring mixed C/C++ and Fortran code. 1 LAPACKE: LAPACKE User guide: 2 CMake:
2 Introduction by Example In order to demonstrate the above features we will work through a series of C examples calling Fortran routines from BLAS and LAPACK (See 3 ). We will use two C programs: timer_dgemm.c: Program to time a Dense Matrix Multiplications in double precision (BLAS routine DGEMM). timer_dgesv.c: Program to time a Linear Solve in double precision (LAPACK routine DGESV) and checks that the solution is correct. and two Fortran libraries: refblas: the Complete Reference BLAS. dgesv: a LAPACK subset that just contains the DGESV routine and its dependencies. This library depends on refblas. To correctly call Fortran from C source code, the following issues must be addressed in the two C programs: In Fortran, all routine arguments are passed by address and not by value. In C global functions can be called directly by the name used in the C code (routine foo is called by the name foo ). However, when calling Fortran from C the external name is modified by a vendor-specific mapping. Some Fortran compilers append an underscore (routine foo is symbol foo_ ), some two underscores, some leave it unchanged and some convert the name to uppercase. This is known as Fortran Name Mangling. Since the C compiler has no knowledge of the Fortran compiler s naming scheme, the functions must be correctly mangled in the C code. Fortran stores arrays in row order while C and C++ store arrays in column order. For more complete information on how to call Fortran from C see 4. Examples 1 to 4 demonstrate the approach to mixing C and Fortran in the CMake build system: Example 1: Linking Fortran libraries from C/C++ code. Example 2: Resolving Fortran mangling Example 3: Introducing Microsoft Visual Studio Example 4: Complete example based on LAPACKE (linking C and Fortran libraries directly under Visual Studio) The complete set of examples is available for download at 3 NETLIB LAPACK Library: LAPACK technical articles: LAPACK for windows 4 Mixing Fortran and C:
3 Automatic detection of Fortran runtime libraries to link The first challenge to mix Fortran and C/C++ is to link all the language runtime libraries. The Fortran, C, and C++ compiler front-ends automatically pass their corresponding language runtime libraries when invoking the linker. When linking to a Fortran library from a C/C++ project the C/C++ compiler front end will not automatically add the Fortran language runtime libraries. Instead one must pass them explicitly when linking. Typically one must run the Fortran compiler in a verbose mode, look for the L and l flags, and manually add them to the C/C++ application link line. This tedious process must be repeated for each platform supported! CMake handles this automatically for projects that mix C/C++ with Fortran. It detects the language runtime library link options used by the compiler front-end for each language. Whenever a library written in one language (say Fortran) is linked by a binary written in another language (say C++) CMake will explicitly pass the necessary link options for the extra languages. CMake module name: none This feature is builtin to CMake and automatically applied to projects that use both Fortran and C or C++. Example 1: Linking Fortran from C Do not pay too much attention to the C code yet, just keep in mind that it is calling a Fortran BLAS and/or LAPACK routine. The further we go in those examples, the simpler the C code will get. Example 1: CMakeLists.txt Linking Fortran from C CMake_minimum_required(VERSION 2.8.8) # Fortran and C are specified so the Fortran runtime library will be # automatically detected and used for linking project (TIMER_Example1 Fortran C) # Set Mangling by hand # Assume _name mangling see C code for how ADD_ will be used in # Fortran mangling add_definitions (-DADD_) # Build the refblas library add_subdirectory (refblas) # Timer for Matrix Multiplication # Calling Fortran DGEMM routine from C add_executable(timer_dgemm timer_dgemm.c) target_link_libraries(timer_dgemm refblas) # Create the dgesv library
4 add_subdirectory (dgesv) # Timer for Linear Solve # Calling Fortran DGESV routine from C also requires linking # the BLAS routines. add_executable(timer_dgesv timer_dgesv.c) target_link_libraries(timer_dgesv dgesv refblas) Example 1: timer_dgemm.c Calling Fortran from C with manual mangling [ ] # Mangling is done by hand # User needs to know which define to set at compile time. #if defined(add_) #define dgemm dgemm_ #elif defined(upper) #define dgemm DGEMM #elif defined(nochange) #define dgemm dgemm #endif [ ] # Declaration of Fortran DGESV routine extern void dgemm (char *transa, char *transb, int *m, int *n, int *k, double *alpha, double *a, int *lda, double *b, int *ldb, double *beta, double *c, int *ldc ); [ ] # Call to Fortran DGEMM routine dgemm (&char01, &char01, &m, &n, &k, &dble01, A, &m, B, &k, &dble01, C, &m); [ ] Download Example 1: Automatic Detection of Fortran Name Mangling The second challenge in mixing Fortran and C/C++ is to know how the Fortran compiler transforms symbol names. Different compilers append or prepend _, or use upper or lower case for the function names. For more information on name mangling in Fortran, see 5. CMake 5 Fortran MANGLING:
5 contains a module that can be used to determine the mangling scheme used by the Fortran compiler. It can be used to create C/C++ header files that contain preprocessor definitions that map C/C++ symbol names to their Fortran-mangled counterparts. CMake module name: FortranCInterface CMake function name: FortranCInterface_HEADER CMake help: cmake --help-module FortranCInterface Syntax: FortranCInterface_HEADER from include(fortrancinterface) FortranCInterface_HEADER( <file> [MACRO_NAMESPACE <macro-ns>] [SYMBOL_NAMESPACE <ns>] [SYMBOLS [<module>:]<function> ]) # name of the header file to be created # The MACRO_NAMESPACE option replaces the default "FortranCInterface_" prefix with a given namespace "<macro-ns>". # The SYMBOL_NAMESPACE option prefixes all preprocessor definitions generated by the SYMBOLS option with a given namespace "<ns>". # The SYMBOLS option lists symbols to mangle automatically with C preprocessor definitions: <function> #define <ns><function>... <module>:<function> #define <ns><module>_<function>... # If the mangling for some symbol is not known then no preprocessor definition is created, and a warning is displayed. Example 2: Resolving Fortran Mangling In Example 1 we assumed the mangling for the routine to be add underscore but this is not necessarily the case. Let s use the CMake FortranCInterface module described above to create the netlib.h header file that will take care of the mangling automatically. It will generate a header mapping dgemm, dgesv, dcopy and dnrm1 to the correct routine name. The header file is by default generated in the current binary directory so we must also tell CMake to add that as an include directory.
6 Example 2: CMakeLists.txt to Detect Fortran Name Mangling cmake_minimum_required(version 2.8.8) project (TIMER_Example2 Fortran C) # enable Fortran and C # Create a header file netlib.h with the correct mangling # for the Fortran routines called in my C programs. include(fortrancinterface) FortranCInterface_HEADER(netlib.h MACRO_NAMESPACE "NETLIB_" SYMBOLS dgemm dgesv dcopy dnrm2) # To find the newly generated header file netlib.h at compile time include_directories (${PROJECT_BINARY_DIR}) # Build the refblas library add_subdirectory (refblas) # Timer for Matrix Multiplication # Calling Fortran DGEMM routine from C add_executable(timer_dgemm timer_dgemm.c) target_link_libraries(timer_dgemm refblas) # Create the dgesv library add_subdirectory(dgesv) # Timer for Linear Solve # Calling Fortran DGESV routine from C requires also to # have the BLAS routines. add_executable(timer_dgesv timer_dgesv.c) target_link_libraries(timer_dgesv dgesv refblas) Example 2: sample netlib.h Header generated by CMake FortranCInterface module #ifndef NETLIB_HEADER_INCLUDED #define NETLIB_HEADER_INCLUDED /* Mangling for Fortran global symbols without underscores. */ #define NETLIB_GLOBAL(name,NAME) name##_ /* Mangling for Fortran global symbols with underscores. */ #define NETLIB_GLOBAL_(name,NAME) name##_ /* Mangling for Fortran module symbols without underscores. */ #define NETLIB_MODULE(mod_name,name, mod_name,name) \ ##mod_name##_mod_##name /* Mangling for Fortran module symbols with underscores. */ #define NETLIB_MODULE_(mod_name,name, mod_name,name) \ ##mod_name##_mod_##name
7 /* */ /* Mangle some symbols automatically. */ #define dgemm NETLIB_GLOBAL(dgemm, DGEMM) #define dgesv NETLIB_GLOBAL(dgesv, DGESV) #define dcopy NETLIB_GLOBAL(dcopy, DCOPY) #define dnrm2 NETLIB_GLOBAL(dnrm2, DNRM2) #endif Example 2: timer_dgemm.c Calling Fortran from C with automatic mangling [ ] /* Use CMake generated header file with auto-detected Mangling */ #include <netlib.h> [ ] /* Declaration of Fortran DGESV routine */ extern void sdgemm (char *transa, char *transb, int *m, int *n, int *k, double *alpha, double *a, int *lda, double *b, int *ldb, double *beta, double *c, int *ldc ); [ ] /* Call to Fortran DGEMM routine */ dgemm (&char01, &char01, &m, &n, &k, &dble01, A, &m, B, &k, &dble01, C, &m); [ ] Download Example2: Using MinGW6 gfortran with Visual Studio The third challenge to mix Fortran and C/C++ is to make it work on Windows under Microsoft Visual Studio without the need of installing a commercial Fortran compiler. Fortunately MinGW provides a Windows port of gfortran, the free GNU Fortran compiler. However, unlike commercial Fortran compilers such as Intel, PGI, Silverforst, etc. MinGW gfortran does not provide direct integration into Visual Studio. 6 MINGW: w64.sourceforge.net/ for both x64 & x86 Windows
8 CMake offers two features to make using MinGW gfortran with Microsoft Visual Studio easy. First, it can create a MS-format import library (.lib) for a shared library (.dll) compiled with MinGW gfortran. Second, it comes with a new CMake module called CMakeAddFortranSubdirectory. The module brings a subdirectory containing a Fortran-only subproject into an otherwise C/C++-only project. The module will automatically enable Fortran support under Visual Studio. It can use native Fortran language support when available (e.g. a VS plugin from Intel or PGI) or generate rules to compile the subproject by invoking MinGW gfortran inside VS. Of course, this will work just fine if you do have a commercial Fortran compiler. Creating Visual Studio.lib files from MinGW gfortran When creating a shared library (.dll) the MinGW toolchain produces a GNU-format import library (.dll.a) needed to link to the shared library. Microsoft (MS) tools do not recognize this format. In order to use MS tools and link to a shared library created by MinGW tools one must generate a MS-format import library (.lib) using the MS lib.exe tool installed with Visual Studio. When building with MinGW tools on a machine that also has Visual Studio installed CMake and higher offers a CMAKE_GNUtoMS option. When enabled CMake automatically generates additional build rules to run the MS lib.exe tool and create a MS-format import library (.lib) for each shared library (.dll) created by a project in addition to its normal GNU-format import library (.dll.a). One may enable the option by setting CMAKE_GNUtoMS inside the project CMake code or by passing it on the CMake command line when generating the build tree: CMake FLAGS cmake -DCMake_GNUtoMS=ON Note that the feature currently works only for SHARED libraries because they reference their dependence on the GNU Fortran runtime libraries internally. STATIC libraries are more challenging because they requires explicit linking to the runtime libraries whose format would also need conversion. A project may specify that a library be shared by using the SHARED option of the add_library command: Inside the project CMake code add_library( SHARED ) If a project does not specify the library type when calling add_library one may tell CMake to build shared libraies on the command line: CMake FLAGS
9 cmake -DBUILD_SHARED_LIBS=ON Side note: DLLs and Intel Fortran If a project needs to work with the Intel Fortran compiler as well then one needs to make sure symbols are exported from each shared library. MinGW gfortran can export all the symbols from a shared library automatically but Intel Fortran requires explicit specification of symbols to export. One may manually create a DLL module definition (.def) file that lists the symbols to export and add it to the add_library call as a source file in CMake. Alternatively, one may mark up the Fortran code with special DEC$ comments recognized by the Intel Fortran compiler: hello.f!dec$ ATTRIBUTES DLLEXPORT :: HELLO SUBROUTINE HELLO PRINT *, 'Hello' The CMakeAddFortranSubdirectory Module CMake offers a new experimental module called CMakeAddFortranSubdirectory. It provides a cmake_add_fortran_subdirectory function to make a Fortran subproject appear as if it were included in a C/C++ project using a normal add_subdirectory command. The subproject may contain only Fortran code and may not contain any C/C++ code. The function first checks if a Fortran compiler is available along with the C/C++ compiler toolchain and if so simply calls add_subdirectory. This is the normal case on most platforms. The magic happens when building for Visual Studio without an integrated Fortran compiler on a machine with MinGW gfortran. The cmake_add_fortran_subdirectory function searches for MinGW gfortran installation and uses the CMake ExternalProject module to add a custom target that builds the subdirectory with the MinGW tools. It enables the BUILD_SHARED_LIBS and CMAKE_GNUtoMS options in the external project to build the Fortran code into shared libraries with MS-format import libraries. In the latter case the function creates CMake imported targets to make the Fortran libraries available to the main project as if they had been built by a direct add_subdirectory call. This requires one to pass additional arguments to the function to tell it what libraries will be built by the subproject. CMake module name: CMakeAddFortranSubdirectory CMake function name: cmake_add_fortran_subdirectory CMake help: cmake --help-module CMakeAddFortranSubdirectory
10 Syntax: cmake_add_fortran_subdirectory from include(cmakeaddfortransubdirectory) cmake_add_fortran_subdirectory ( <subdir> PROJECT <project_name> ARCHIVE_DIR <dir> RUNTIME_DIR <dir> LIBRARIES <lib>... LINK_LIBRARIES [LINK_LIBS <lib> <dep>...]... CMake_COMMAND_LINE... NO_EXTERNAL_INSTALL ) # name of subdirectory # project name in subdir # dir where project places.lib files # dir where project places.dll files # names of library targets to import # link dependencies for LIBRARIES # extra command line to pass to CMake # skip installation of external project Note: The relative paths in ARCHIVE_DIR and RUNTIME_DIR are interpreted with respect to the build directory corresponding to the source directory in which the function is invoked. Example 3: Introducing Microsoft Visual Studio Here is our second example modified to use the CMakeAddFortranSubdirectory feature. Only the CMake configuration has been changed; the C and Fortran source files are the same as in the previous example. The main difference is that now we work under Windows with Microsoft Visual Studio. On our machine, no Fortran compiler is integrated with VS (i.e no Intel Fortran Compiler for Windows installed) but we have MinGW installed on our machine. The MinGW installation must include gfortran and gcc in order to determine the Fortran mangling scheme used. We move our Fortran subfolders to the new fortran folder that will be an actual CMake Fortran project. We are now able to use the CMakeAddFortranSubdirectory module. Our Fortran Project will still need C as we want still to use the CMake FortranCInterface module to create our netlib.h header. The header will now be generated in the binary dir of the dgesv project. Because now we are going to work under Visual Studio and with dll s, we need to add extra commands to make sure the dll s generated will be available in our binary directory. Example 3: CMakeLists.txt Using MinGW gfortran from Visual Studio CMake_minimum_required(VERSION 2.8.8) # Fortran is not mentioned as we accept no Native Fortran Support project (TIMER_Example3) # Organize output so that all generated lib go to the same lib directory # and all dll and executable go to the same bin directory set(cmake_runtime_output_directory "${PROJECT_BINARY_DIR}/bin") set(cmake_archive_output_directory "${PROJECT_BINARY_DIR}/lib") set(cmake_library_output_directory "${PROJECT_BINARY_DIR}/lib") # Get the module CMakeAddFortranSubdirectory include(cmakeaddfortransubdirectory)
11 # Add the fortran subdirectory as a fortran project # the subdir is fortran, the project is DGESV CMake_add_fortran_subdirectory(fortran PROJECT DGESV ARCHIVE_DIR ${CMake_ARCHIVE_OUTPUT_DIRECTORY} RUNTIME_DIR ${CMake_RUNTIME_OUTPUT_DIRECTORY} LIBRARIES refblas dgesv # target libraries created LINK_LIBRARIES # link interface libraries LINK_LIBS dgesv refblas # dgesv needs refblas to link CMake_COMMAND_LINE -DCMake_ARCHIVE_OUTPUT_DIRECTORY=${CMake_ARCHIVE_OUTPUT_DIRECTORY} -DCMake_RUNTIME_OUTPUT_DIRECTORY=${CMake_RUNTIME_OUTPUT_DIRECTORY} NO_EXTERNAL_INSTALL ) # To find the newly generated header file include_directories (${PROJECT_BINARY_DIR}/fortran) # The autofortran library linking does not work unless Fortran is enabled. include(checklanguage) check_language(fortran) if(cmake_fortran_compiler) enable_language(fortran) else() message(status "No native Fortran support ") endif() # Timer for Matrix Multiplication Calling Fortran DGEMM routine from C add_executable(timer_dgemm timer_dgemm.c) target_link_libraries(timer_dgemm refblas) # Timer for Linear Solve Calling Fortran DGESV routine from C add_executable(timer_dgesv timer_dgesv.c) target_link_libraries(timer_dgesv dgesv) # Add extra command to copy dll's next to the binaries # so that the PATH does not have to be altered to run # the executables IF(WIN32) ADD_CUSTOM_COMMAND( TARGET timer_dgemm POST_BUILD COMMAND ${CMake_COMMAND} -E copy ${PROJECT_BINARY_DIR}/bin/librefblas.dll ${PROJECT_BINARY_DIR}/bin/${CMake_CFG_INTDIR} ) ADD_CUSTOM_COMMAND( TARGET timer_dgesv POST_BUILD COMMAND ${CMake_COMMAND} -E copy ${PROJECT_BINARY_DIR}/bin/libdgesv.dll ${PROJECT_BINARY_DIR}/bin/${CMake_CFG_INTDIR} ) ENDIF(WIN32)
12 Example 3: fortran/cmakelists.txt DGESV Fortran Project CMake_minimum_required(VERSION 2.8.7) project(dgesv Fortran C) # Create a header file netlib.h for the routines called in my C programs include(fortrancinterface) FortranCInterface_HEADER(netlib.h SYMBOLS dgemm dgesv dcopy dnrm2) # Creating a library with the Fortran routine DGESV and its dependencies add_subdirectory(refblas) add_subdirectory(dgesv) Example 3: Screenshot of CMake output under Windows Example 3: Screenshot of Visual Studio Build
13 Download Example3: Plugging a C Interface with the FORTRAN Library Now that your project of mixing Fortran and C with CMake is ready, the only burden that remains for the user is the coding part. Some of you will decide that a C Interface could to be useful to your project to handle for example column-major and row-major format, complex data types, input arguments passed by value,.. In this section, we will show that
14 plugging your C Interface in your project is straight-forward now that you understood the powerful CMake features shown in the previous examples. Example 4: Introducing LAPACKE Since CMake allow us to link Fortran directly from Microsoft Visual Studio, we are going to add a C Interface layer, namely LAPACKE, to make calls to LAPACK easier from C from a user point-of view. Please refer to the LAPACKE User guide for further help [i]. Example 4 demonstrates how LAPACKE is included into the LAPACK CMake build. As LAPACKE subset is build directly from Microsoft Visual Studio, we can choose to build static or dynamic library of LAPACKE (default being static). We are going to use the official LAPACKE DGESV examples written by INTEL corporation. This example represents a subset of LAPACK and LAPACKE as only DGESV and its dependencies are used. To get complete prebuilt of Reference BLAS, LAPACK, LAPACKE libraries, please refer to Example 4: CMakeLists.txt Using MinGW gfortran and including LAPACKE from Visual Studio CMake_minimum_required(VERSION 2.8.8) # Fortran is not mentioned as we accept no Native Fortran Support project (LAPACKE_Example C) # Organize output so that all generated lib go to the same lib directory # and all dll and executable go to the same bin directory set(cmake_runtime_output_directory "${PROJECT_BINARY_DIR}/bin") set(cmake_archive_output_directory "${PROJECT_BINARY_DIR}/lib") set(cmake_library_output_directory "${PROJECT_BINARY_DIR}/lib") # Looking for an optimized BLAS library already installed on the machine # If none available, we will use the Reference BLAS # result will be stored in the BLAS_LIBRARIES variable include(${project_source_dir}/setblas.cmake) setblas() # Get the module CMakeAddFortranSubdirectory include(cmakeaddfortransubdirectory) # Add the fortran subdirectory as a fortran project # the subdir is fortran, the project is DGESV CMake_add_fortran_subdirectory(fortran PROJECT DGESV ARCHIVE_DIR ${CMake_ARCHIVE_OUTPUT_DIRECTORY} RUNTIME_DIR ${CMake_RUNTIME_OUTPUT_DIRECTORY} LIBRARIES refblas dgesv # target libraries created LINK_LIBRARIES # link interface libraries LINK_LIBS dgesv refblas # dgesv needs refblas to link CMake_COMMAND_LINE -DCMake_ARCHIVE_OUTPUT_DIRECTORY=${CMake_ARCHIVE_OUTPUT_DIRECTORY} -DCMake_RUNTIME_OUTPUT_DIRECTORY=${CMake_RUNTIME_OUTPUT_DIRECTORY} NO_EXTERNAL_INSTALL
15 ) # To find the newly generated header file include_directories (${PROJECT_BINARY_DIR}/include) # All C subdirectory to build LAPACKE add_subdirectory(c) # The autofortran library linking does not work unless Fortran is enabled. include(checklanguage) check_language(fortran) if(cmake_fortran_compiler) enable_language(fortran) else() message(status "No native Fortran support ") endif() # LAPACKE Examples: Calling LAPACKE DGESV routine from C add_executable(example_dgesv_rowmajor example_dgesv_rowmajor.c) target_link_libraries(example_dgesv_rowmajor lapacke dgesv ${BLAS_LIBRARIES} ) add_executable(example_dgesv_colmajor example_dgesv_colmajor.c) target_link_libraries(example_dgesv_colmajor lapacke dgesv ${BLAS_LIBRARIES} ) # Add extra command to copy dll's next to the binaries IF(WIN32) ADD_CUSTOM_COMMAND( TARGET example_dgesv_rowmajor POST_BUILD COMMAND ${CMake_COMMAND} -E copy ${PROJECT_BINARY_DIR}/bin/librefblas.dll ${PROJECT_BINARY_DIR}/bin/${CMake_CFG_INTDIR} ) ADD_CUSTOM_COMMAND( TARGET example_dgesv_rowmajor POST_BUILD COMMAND ${CMake_COMMAND} -E copy ${PROJECT_BINARY_DIR}/bin/libdgesv.dll ${PROJECT_BINARY_DIR}/bin/${CMake_CFG_INTDIR} ) ENDIF(WIN32) LAPACKE requires the creation of lapacke_mangling.h. We are just going to directly use CMAKE capabilities to create the mangling macro LAPACK_GLOBAL and save it in the lapacke_mangling.h file. The lapacke.h include file will include the lapacke_mangling.h file and define the new routine name with calls to the LAPACK_GLOBAL macro.
16 Example 4: fortran/cmakelists.txt DGESV Fortran Project CMake_minimum_required(VERSION 2.8.8) project(dgesv Fortran C) # Create a header file lapacke_mangling.h for the routines called in my C # programs include(fortrancinterface) FortranCInterface_HEADER(../include/lapacke_mangling.h MACRO_NAMESPACE "LAPACK_" - SYMBOL_NAMESPACE "LAPACK_") # Creating a library with the Fortran routine DGESV and its dependencies add_subdirectory(refblas) add_subdirectory(dgesv) Example 4: Screenshot of Visual Studio Build and executable output
17 Download Example4: Summary CMake has a rich set of tools to enable the cross platform development of C/C++ code that compiles and links to Fortran source code. CMake can determine compiler symbol mangling as well as the correct run time libraries required to use the Fortran code from C/C++. The new CMake_add_fortran_subdirectory function currently under development will give VS studio users a free Fortran compiler available for use from the Visual Studio IDE using the MinGW gfortran compiler. Thanks to all those great CMake features and to an optional development of a C Interface, the Fortran library can now be called from C directly from Microsoft Visual Studio without putting undue burden on the user. Thanks The CMake team would like to thank the Trilinos ( ) and DAKOTA ( ) teams for their input and collaboration on the CMake Fortran support.
Introduction CMake Language Specific cases. CMake Tutorial. How to setup your C/C++ projects? Luis Díaz Más. http://plagatux.es.
How to setup your C/C++ projects? http://plagatux.es November, 2012 Outline Introduction 1 Introduction 2 Concepts Scripting CPack 3 Qt libraries Cross-compiling Introduction System for configuring C/C++
CMPT 373 Software Development Methods. Building Software. Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware
CMPT 373 Software Development Methods Building Software Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware What does it mean to build software? How many of you know how to build software?
Installing OpenVSP on Windows 7
ASDL, Georgia Institue of Technology August 2012 Table of Contents 1. Introduction... 1 2. Setting up Windows Line-Mode... 1 3. Preparation for OpenVSP... 2 3.1. Create an OpenVSP Folder... 2 3.2. Install
Mastering CMake. Sixth Edition. Bill Martin & Hoffman. Ken. Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard,
Mastering CMake Sixth Edition Ken Bill Martin & Hoffman With contributions from: Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard, Alex Neundorf Published by Kitware
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6)
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6) Configuring the environment manually Using CMake CLHEP full version installation
INTEL PARALLEL STUDIO EVALUATION GUIDE. Intel Cilk Plus: A Simple Path to Parallelism
Intel Cilk Plus: A Simple Path to Parallelism Compiler extensions to simplify task and data parallelism Intel Cilk Plus adds simple language extensions to express data and task parallelism to the C and
Using Intel C++ Compiler in Eclipse* for Embedded Linux* targets
Using Intel C++ Compiler in Eclipse* for Embedded Linux* targets Contents Introduction... 1 How to integrate Intel C++ compiler with Eclipse*... 1 Automatic Integration during Intel System Studio installation...
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
Chapter 1: Getting Started
Chapter 1: Getting Started Every journey begins with a single step, and in ours it's getting to the point where you can compile, link, run, and debug C++ programs. This depends on what operating system
Creating Dynamics User Model Dynamic Linked Library (DLL) for Various PSS E Versions
Siemens Energy, Inc. Power Technology Issue 111 Creating Dynamics User Model Dynamic Linked Library (DLL) for Various PSS E Versions Krishnat Patil Staff Software Engineer [email protected] Jay
Building and Using a Cross Development Tool Chain
Building and Using a Cross Development Tool Chain Robert Schiele [email protected] Abstract 1 Motivation 1.1 Unix Standard System Installations When building ready-to-run applications from source,
Binary compatibility for library developers. Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013
Binary compatibility for library developers Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013 Who am I? Open Source developer for 15 years C++ developer for 13 years Software
How to use PDFlib products with PHP
How to use PDFlib products with PHP Last change: July 13, 2011 Latest PDFlib version covered in this document: 8.0.3 Latest version of this document available at: www.pdflib.com/developer/technical-documentation
Xeon Phi Application Development on Windows OS
Chapter 12 Xeon Phi Application Development on Windows OS So far we have looked at application development on the Linux OS for the Xeon Phi coprocessor. This chapter looks at what types of support are
Creating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
MatrixSSL Getting Started
MatrixSSL Getting Started TABLE OF CONTENTS 1 OVERVIEW... 3 1.1 Who is this Document For?... 3 2 COMPILING AND TESTING MATRIXSSL... 4 2.1 POSIX Platforms using Makefiles... 4 2.1.1 Preparation... 4 2.1.2
Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part...
Part 1 Java Language Tools This beginning, ground-level part presents reference information for setting up the Java development environment and for compiling and running Java programs. This includes downloading
Programming with the Dev C++ IDE
Programming with the Dev C++ IDE 1 Introduction to the IDE Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. As similar IDEs, it offers to the programmer
Installing C++ compiler for CSc212 Data Structures
for CSc212 Data Structures [email protected] Spring 2010 1 2 Testing Mac 3 Why are we not using Visual Studio, an Integrated Development (IDE)? Here s several reasons: Visual Studio is good for LARGE project.
Code Estimation Tools Directions for a Services Engagement
Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary
Opening a Command Shell
Opening a Command Shell Win Cmd Line 1 In WinXP, go to the Programs Menu, select Accessories and then Command Prompt. In Win7, go to the All Programs, select Accessories and then Command Prompt. Note you
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
CMake/CTest/CDash OSCON 2009
CMake/CTest/CDash OSCON 2009 Open Source Tools to build, test, and install software Bill Hoffman [email protected] Overview Introduce myself and Kitware Automated Testing About CMake Building with
Suite. How to Use GrandMaster Suite. Exporting with ODBC
Suite How to Use GrandMaster Suite Exporting with ODBC This page intentionally left blank ODBC Export 3 Table of Contents: HOW TO USE GRANDMASTER SUITE - EXPORTING WITH ODBC...4 OVERVIEW...4 WHAT IS ODBC?...
Visual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
Migrating a Windows PC to Run in VMware Fusion VMware Fusion 2.0
Technical Note Migrating a Windows PC to Run in VMware Fusion VMware Fusion 2.0 This technical note describes the process for migrating an existing Windows PC to run as a virtual machine with VMware Fusion
Freescale Semiconductor, I
nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development
Lazy OpenCV installation and use with Visual Studio
Lazy OpenCV installation and use with Visual Studio Overview This tutorial will walk you through: How to install OpenCV on Windows, both: The pre-built version (useful if you won t be modifying the OpenCV
Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
Creating OpenGL applications that use GLUT
Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Creating OpenGL applications that use GLUT Short guide to creating OpenGL applications in Windows and Mac OSX Contents Obtaining
Documentation Installation of the PDR code
Documentation Installation of the PDR code Franck Le Petit mardi 30 décembre 2008 Requirements Requirements depend on the way the code is run and on the version of the code. To install locally the Meudon
Eclipse IDE for Embedded AVR Software Development
Eclipse IDE for Embedded AVR Software Development Helsinki University of Technology Jaakko Ala-Paavola February 17th, 2006 Version 0.2 Abstract This document describes how to set up Eclipse based Integrated
Creating a Simple Macro
28 Creating a Simple Macro What Is a Macro?, 28-2 Terminology: three types of macros The Structure of a Simple Macro, 28-2 GMACRO and ENDMACRO, Template, Body of the macro Example of a Simple Macro, 28-4
Using Microsoft Visual Studio 2010. API Reference
2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token
User Manual. 3-Heights PDF Producer API. Version 4.6
User Manual 3-Heights PDF Producer API Version 4.6 Contents 1 Introduction........................................................................ 2 1.1 Operating Systems...................................................................
Image Acquisition Toolbox Adaptor Kit User's Guide
Image Acquisition Toolbox Adaptor Kit User's Guide R2015b How to Contact MathWorks Latest news: www.mathworks.com Sales and services: www.mathworks.com/sales_and_services User community: www.mathworks.com/matlabcentral
1 Abstract Data Types Information Hiding
1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content
FAQ CE 5.0 and WM 5.0 Application Development
FAQ CE 5.0 and WM 5.0 Application Development Revision 03 This document contains frequently asked questions (or FAQ s) related to application development for Windows Mobile 5.0 and Windows CE 5.0 devices.
INTEL PARALLEL STUDIO XE EVALUATION GUIDE
Introduction This guide will illustrate how you use Intel Parallel Studio XE to find the hotspots (areas that are taking a lot of time) in your application and then recompiling those parts to improve overall
AIMMS 4.0. Portable component Linux Intel version. Release Notes for Build 4.9. Visit our web site www.aimms.com for regular updates AIMMS
AIMMS 4.0 Portable component Linux Intel version Release Notes for Build 4.9 Visit our web site www.aimms.com for regular updates AIMMS September 2, 2015 Contents Contents 2 1 System Overview of the Intel
A Tutorial on installing and using Eclipse
SEG-N-0017 (2011) A Tutorial on installing and using Eclipse LS Chin, C Greenough, DJ Worth July 2011 Abstract This SEGNote is part of the material use at the CCPPNet Software Engineering Workshop. Its
Zoom Plug-ins for Adobe
= Zoom Plug-ins for Adobe User Guide Copyright 2010 Evolphin Software. All rights reserved. Table of Contents Table of Contents Chapter 1 Preface... 4 1.1 Document Revision... 4 1.2 Audience... 4 1.3 Pre-requisite...
BlueJ Teamwork Tutorial
BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3
FTP Client Engine Library for Visual dbase. Programmer's Manual
FTP Client Engine Library for Visual dbase Programmer's Manual (FCE4DB) Version 3.3 May 6, 2014 This software is provided as-is. There are no warranties, expressed or implied. MarshallSoft Computing, Inc.
CLC Server Command Line Tools USER MANUAL
CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016 This guide was contributed by a community developer for your benefit. Background Magento
Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go
Debugging ESE112 Java Programming: API, Psuedo-Code, Scope It is highly unlikely that you will write code that will work on the first go Bugs or errors Syntax Fixable if you learn to read compiler error
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7
Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7 Contents Overview... 1 The application... 2 Motivation... 2 Code and Environment... 2 Preparing the Windows Embedded Standard
Lesson 0 - Introduction to Playstation 3 programming
Lesson 0 - Introduction to Playstation 3 programming Summary A brief overview of the Playstation 3 development environment, and how to set up a PS3 project solution to run on the PS3 Devkits. New Concepts
GIVE WINGS TO YOUR IDEAS TOOLS MANUAL
GIVE WINGS TO YOUR IDEAS TOOLS MANUAL PLUG IN TO THE WIRELESS WORLD Version: 001 / 1.0 Date: October 30, 2001 Reference: WM_TOO_OAT_UGD_001 confidential Page: 1 / 22 (THIS PAGE IS INTENTIONALY LEFT BLANK)
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
911207 Amman 11191 Jordan e-mail: [email protected] Mob: +962 79 999 65 85 Tel: +962 6 401 5565
1 Dynamics GP Excel Paste Installation and deployment guide 2 DISCLAIMER STATEMENT All the information presented in this document is the sole intellectual property of Dynamics Innovations IT Solutions.
Evaluation of the CMT and SCRAM Software Configuration, Build and Release Management Tools
Evaluation of the CMT and SCRAM Software Configuration, Build and Release Management Tools Alex Undrus Brookhaven National Laboratory, USA (ATLAS) Ianna Osborne Northeastern University, Boston, USA (CMS)
Ensure that the AMD APP SDK Samples package has been installed before proceeding.
AMD APP SDK v2.6 Getting Started 1 How to Build a Sample 1.1 On Windows Ensure that the AMD APP SDK Samples package has been installed before proceeding. Building With Visual Studio Solution Files The
Running your first Linux Program
Running your first Linux Program This document describes how edit, compile, link, and run your first linux program using: - Gnome a nice graphical user interface desktop that runs on top of X- Windows
The Advanced JTAG Bridge. Nathan Yawn [email protected] 05/12/09
The Advanced JTAG Bridge Nathan Yawn [email protected] 05/12/09 Copyright (C) 2008-2009 Nathan Yawn Permission is granted to copy, distribute and/or modify this document under the terms of the
Mobile Labs Plugin for IBM Urban Code Deploy
Mobile Labs Plugin for IBM Urban Code Deploy Thank you for deciding to use the Mobile Labs plugin to IBM Urban Code Deploy. With the plugin, you will be able to automate the processes of installing or
Development_Setting. Step I: Create an Android Project
A step-by-step guide to setup developing and debugging environment in Eclipse for a Native Android Application. By Yu Lu (Referenced from two guides by MartinH) Jan, 2012 Development_Setting Step I: Create
How To Use Query Console
Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User
TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform
October 6, 2015 1 Introduction The laboratory exercises in this course are to be conducted in an environment that might not be familiar to many of you. It is based on open source software. We use an open
Stored Documents and the FileCabinet
Stored Documents and the FileCabinet Introduction The stored document features have been greatly enhanced to allow easier storage and retrieval of a clinic s electronic documents. Individual or multiple
An Embedded Wireless Mini-Server with Database Support
An Embedded Wireless Mini-Server with Database Support Hungchi Chang, Sy-Yen Kuo and Yennun Huang Department of Electrical Engineering National Taiwan University Taipei, Taiwan, R.O.C. Abstract Due to
ibolt V3.2 Release Notes
ibolt V3.2 Release Notes Welcome to ibolt V3.2, which has been designed to deliver an easy-touse, flexible, and cost-effective business integration solution. This document highlights the new and enhanced
sqlite driver manual
sqlite driver manual A libdbi driver using the SQLite embedded database engine Markus Hoenicka [email protected] sqlite driver manual: A libdbi driver using the SQLite embedded database engine
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
Installing Eclipse C++ for Windows
Installing Eclipse C++ for Windows I. Introduction... 2 II. Installing and/or Enabling the 32-bit JRE (Java Runtime Environment)... 2 A. Windows 32-bit Operating System Environment... 2 B. Windows 64-bit
Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076.
Code::Block manual for CS101x course Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076. April 9, 2014 Contents 1 Introduction 1 1.1 Code::Blocks...........................................
Practice Fusion API Client Installation Guide for Windows
Practice Fusion API Client Installation Guide for Windows Quickly and easily connect your Results Information System with Practice Fusion s Electronic Health Record (EHR) System Table of Contents Introduction
CAPIX Job Scheduler User Guide
CAPIX Job Scheduler User Guide Version 1.1 December 2009 Table of Contents Table of Contents... 2 Introduction... 3 CJS Installation... 5 Writing CJS VBA Functions... 7 CJS.EXE Command Line Parameters...
Numerical Algorithms Group
Title: Summary: Calling C Library Routines from Java Using the Java Native Interface This paper presents a technique for calling C library routines directly from Java, saving you the trouble of rewriting
PTC Integrity Eclipse and IBM Rational Development Platform Guide
PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity
Getting off the ground when creating an RVM test-bench
Getting off the ground when creating an RVM test-bench Rich Musacchio, Ning Guo Paradigm Works [email protected],[email protected] ABSTRACT RVM compliant environments provide
SIM900_Custom Application Building Tutorial_Application Note_V1.00
SIM900_Custom Application Building Tutorial_Application Note_V1.00 Document Title: SIM900 Custom Application Building Tutorial Application Note Version: 1.00 Date: 2010-9-16 Status: Document Control ID:
CET W/32 Application Builder Version 9
CET W/32 Application Builder Version 9 Overview of the Product, Technical Specifications, And Installation Guide cet software, incorporated 6595 odell place boulder, colorado, 80301 Table of Contents INSTALLATION
SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay
SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay The Johns Hopkins University, Department of Physics and Astronomy Eötvös University, Department of Physics of Complex Systems http://voservices.net/sqlarray,
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Lab Experience 17. Programming Language Translation
Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly
Get an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*
Get an Easy Performance Boost Even with Unthreaded Apps for Windows* Can recompiling just one file make a difference? Yes, in many cases it can! Often, you can achieve a major performance boost by recompiling
ODBC Client Driver Help. 2015 Kepware, Inc.
2015 Kepware, Inc. 2 Table of Contents Table of Contents 2 4 Overview 4 External Dependencies 4 Driver Setup 5 Data Source Settings 5 Data Source Setup 6 Data Source Access Methods 13 Fixed Table 14 Table
MATLAB Compiler 4 User s Guide
MATLAB Compiler 4 User s Guide How to Contact The MathWorks www.mathworks.com Web comp.soft-sys.matlab Newsgroup www.mathworks.com/contact_ts.html Technical Support [email protected] [email protected]
SIM900 Eclipse environment install Application Note_V1.00
SIM900 Eclipse environment install Application Note_V1.00 Document Title: Note Version: V1.00 Date: 2011-01-11 Status: Document Control ID: Edit SIM900_Eclipse_environment_install_Application_Note _V1.01
Top 10 Things to Know about WRDS
Top 10 Things to Know about WRDS 1. Do I need special software to use WRDS? WRDS was built to allow users to use standard and popular software. There is no WRDSspecific software to install. For example,
Beginner s Matlab Tutorial
Christopher Lum [email protected] Introduction Beginner s Matlab Tutorial This document is designed to act as a tutorial for an individual who has had no prior experience with Matlab. For any questions
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Improve Fortran Code Quality with Static Analysis
Improve Fortran Code Quality with Static Analysis This document is an introductory tutorial describing how to use static analysis on Fortran code to improve software quality, either by eliminating bugs
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X DU-05348-001_v6.5 August 2014 Installation and Verification on Mac OS X TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. System Requirements... 1 1.2. About
How to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
Waspmote IDE. User Guide
Waspmote IDE User Guide Index Document Version: v4.1-01/2014 Libelium Comunicaciones Distribuidas S.L. INDEX 1. Introduction... 3 1.1. New features...3 1.2. Other notes...3 2. Installation... 4 2.1. Windows...4
Cosmic Board for phycore AM335x System on Module and Carrier Board. Application Development User Manual
Cosmic Board for phycore AM335x System on Module and Carrier Board Application Development User Manual Product No: PCL-051/POB-002 SOM PCB No: 1397.0 CB PCB No: 1396.1 Edition: October,2013 In this manual
Athena Knowledge Base
Athena Knowledge Base The Athena Visual Studio Knowledge Base contains a number of tips, suggestions and how to s that have been recommended by the users of the software. We will continue to enhance this
TZWorks Windows Event Log Viewer (evtx_view) Users Guide
TZWorks Windows Event Log Viewer (evtx_view) Users Guide Abstract evtx_view is a standalone, GUI tool used to extract and parse Event Logs and display their internals. The tool allows one to export all
MS SQL Express installation and usage with PHMI projects
MS SQL Express installation and usage with PHMI projects Introduction This note describes the use of the Microsoft SQL Express 2008 database server in combination with Premium HMI projects running on Win31/64
Setting Up ALERE with Client/Server Data
Setting Up ALERE with Client/Server Data TIW Technology, Inc. November 2014 ALERE is a registered trademark of TIW Technology, Inc. The following are registered trademarks or trademarks: FoxPro, SQL Server,
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
