Using the Microsoft Windows SDK Tools to Compile Against Spincore Libraries

Total Page:16

File Type:pdf, Size:1020Kb

Using the Microsoft Windows SDK Tools to Compile Against Spincore Libraries Using the Microsoft Windows SDK Tools to Compile Against SpinCore Libraries SpinCore Technologies, Inc. November 19, 2013 1 Introduction Recently, SpinAPI's compilation process has moved to the Microsoft Windows SDK C/C++ compiler. The reason behind this move away from GCC is that true 64bit support became necessary. In order to use GCC for 64bit compilation on Windows, plain MinGW is not enough; a Cygwin environment with a 64bit port of MinGW becomes necessary. Requiring the use of Cygwin not only complicates the compilation process for us, but for customers as well. The current solution to this problem is to use the Microsoft Windows SDK C/C++ compiler. The SDK provides an easy way to setup the correct build environment for 64bit or 32bit, and also will use the correct C++ name mangling conventions for C++ libraries compiled with Visual Studio. Additionally, the compilation method is easily scriptable. 2 Install necessary Tools The Microsoft Windows SDK (at least v7.1 is recommended) is required to compile C programs against the SpinAPI library, or other SpinCore API packages. The Windows SDK can be found for free on Microsoft's MSDN website. 3 Setup Build Environment The Microsoft Windows SDK comes with a tool called \setenv.cmd". This is the tool that is used to setup the 64bit and 32bit build environments. It is found in the installation directory of the SDK under the \Bin" folder. If you would like to have this tool available at the command line without typing out the absolute path, you will need to add the \Bin" directory to the system's path variable. This can be done as follows (on Windows 7): 1. Click on the \Start" menu. 2. Right click on \Computer" 3. Click \Properties" 4. Click \Advanced System Settings" 5. Click \Environment Variables" 6. Under \System Variables" click on \Path", then click the \Edit..." button below. 7. Add a semicolon at the end of the \Variable value" field, and then enter the full path to where \setenv.cmd" resides, for example (without quotes): \C:nProgram FilesnMicrosoft SDKsnWindowsnv7.1nBin" 8. Press \OK" 3 times. Now you will be able to open a terminal and have \setenv.cmd" available in the system path. 3.1 Usage of \setenv.cmd" To set up a 64bit build environment: setenv.cmd /x64 /release To set up a 32bit build environment: setenv.cmd /x86 /release 1 4 Compiling Once \setenv.cmd" has been called, the proper build environment has been setup and the compilers are available. \cl.exe" is the C/C++ compiler used. Some important parameters are listed below. • Adding Include Directories: cl.exe foo.c /I YourPath • Linking against a library requires that you add a full or relative path to the .lib file. cl.exe foo.c \path\to\bar.lib Full example of 64bit compilation (with SpinAPI 64bit): cd C:\SpinCore\Examples\General setenv.cmd /x64 /release cl.exe .\read_firmware.c /IC:\SpinCore\SpinAPI\inc C:\SpinCore\SpinAPI\lib\spinapi64.lib Full example of 32bit compilation (with SpinAPI 32bit): cd C:\SpinCore\Examples\General setenv.cmd /x86 /release cl.exe .\read_firmware.c /IC:\SpinCore\SpinAPI\inc C:\SpinCore\SpinAPI\lib\spinapi.lib Full example of 32bit compilation (with SpinAPI 64bit): cd C:\SpinCore\Examples\General setenv.cmd /x86 /release cl.exe .\read_firmware.c /IC:\SpinCore\SpinAPI\inc C:\SpinCore\SpinAPI\lib32\spinapi.lib 2 Revisions Version Description Author Date 1.0 Initial document creation Patrick Gauvin 20121220 1.1 Revised to reflect new directory structure of SpinAPI Patrick Gauvin 20131119 3.
Recommended publications
  • Building Openjfx
    Building OpenJFX Building a UI toolkit for many different platforms is a complex and challenging endeavor. It requires platform specific tools such as C compilers as well as portable tools like Gradle and the JDK. Which tools must be installed differs from platform to platform. While the OpenJFX build system was designed to remove as many build hurdles as possible, it is necessary to build native code and have the requisite compilers and toolchains installed. On Mac and Linux this is fairly easy, but setting up Windows is more difficult. If you are looking for instructions to build FX for JDK 8uNNN, they have been archived here. Before you start Platform Prerequisites Windows Missing paths issue Mac Linux Ubuntu 18.04 Ubuntu 20.04 Oracle Enterprise Linux 7 and Fedora 21 CentOS 8 Common Prerequisites OpenJDK Git Gradle Ant Environment Variables Getting the Sources Using Gradle on The Command Line Build and Test Platform Builds NOTE: cross-build support is currently untested in the mainline jfx-dev/rt repo Customizing the Build Testing Running system tests with Robot Testing with JDK 9 or JDK 10 Integration with OpenJDK Understanding a JDK Modular world in our developer build Adding new packages in a modular world First Step - development Second Step - cleanup Before you start Do you really want to build OpenJFX? We would like you to, but the latest stable build is already available on the JavaFX website, and JavaFX 8 is bundled by default in Oracle JDK 8 (9 and 10 also included JavaFX, but were superseded by 11, which does not).
    [Show full text]
  • Build Prerequisites
    Build Prerequisites Table of Contents 1 Overview 2 Introduction 3 IDE 4 Download 5 Installation 5.1 Git for Windows 5.2 TortoiseGit 5.3 YASM (since MP 1.25 Final, YASM is provided as nuget package, you can skip this ) 5.4 NuGet Package Manager 5.5 NSIS 6 Configuration 6.1 .Net Framework 3.5 6.2 Windows and DirectX SDK Environment Variables 6.3 TortoiseGit 7 Next Steps 8 Changelog Overview How to setup your system with the required software to access and use or contribute to the MediaPortal source code, particularly for compiling and building an installer.. Introduction In order to reduce the size of the MediaPortal Git repository and simplify merging branches and testing, C++ sourced binaries have been removed from the repository as of April, 2013. This change affects the way in which you setup your system to compile and build MediaPortal. This guide is written for anyone who wants access to our MediaPortal source code repository to compile and build individual branches for testing or development, using either Windows 7 or Windows 8. Note: You should have already installed the Required software for MediaPortal on the system where you install Git, see Requirements > System Components IDE Our source repository contains Microsoft Visual Studio 2013 solutions. We recommend using Visual Studio 2013 Community Edition but any commercial edition should work too. Download Let's start with downloading the required software: Git for Windows (get the latest Full Installer) TortoiseGit (32bit or 64bit depends on your OS) Visual Studio 2015 Community
    [Show full text]
  • Winframe API SDK Programmer's Guide
    WFAPI SDK Programmer's Guide Introduction The Citrix WFAPI functions enable application programs to perform tasks that are unique to XenApp and XenDesktop. Appropriate hotfixes and service packs may be needed for the functions defined here to execute properly. In this document XenApp and XenDesktop will be referred to as Citrix VDA. XenApp (RDS VDA) runs on server OSs, Microsoft Windows 2008R2 (Win 7 server) and Windows 2012R2 (Win 8.1 server) and XenDesktop (WS VDA) runs on workstation OSs, Windows 7, Windows 8.1, Windows 10. This SDK allows software developers to programmatically access features specific to Citrix VDAs. For example: • Enumerating servers, sessions, and processes • Managing servers, sessions, and processes • Accessing Citrix-specific user data • Sending messages to a session • Using virtual channels • Waiting on system events The WFAPI SDK comprises a set of function calls to the Wfapi.dll dynamic link library (DLL) for 32- bit applications and Wfapi64.dll for 64-bit applications. These DLLs are available on servers running XenApp and on Windows Workstation platforms running XenDesktop. Example programs are included to assist developers. Using the WFAPI SDK The WFAPI SDK is intended for use by OEMs and customers who need to write applications that directly call WFAPI functions, using Microsoft Visual C++, Version 12.0 (Visual Studio 2013). System Requirements The WFAPI SDK must be installed and built on a Windows 7, Windows 8.1, Windows 10, Windows Servers 2008R2 or 2012R2 computer with sufficient disk space. The SDK does not need more than a few megabytes of disk space; however, third-party development tools (for example, Microsoft Visual C++) may require a substantial amount of disk space.
    [Show full text]
  • IBM Connect:Direct for Microsoft Windows: Documentation Fixpack 1 (V6.1.0.1)
    IBM Connect:Direct for Microsoft Windows 6.1 Documentation IBM This edition applies to Version 5 Release 3 of IBM® Connect:Direct and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright International Business Machines Corporation 1993, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Chapter 1. Release Notes.......................................................................................1 Requirements...............................................................................................................................................1 Features and Enhancements....................................................................................................................... 2 Special Considerations................................................................................................................................ 3 Known Restrictions...................................................................................................................................... 4 Restrictions for Connect:Direct for Microsoft Windows........................................................................ 4 Restrictions for Related Software.......................................................................................................... 6 Installation Notes.........................................................................................................................................6
    [Show full text]
  • Visual Build Help
    Visual Build Professional User's Manual Copyright © 1999-2021 Kinook Software, Inc. Contents I Table of Contents Part I Introduction 1 1 Overview ................................................................................................................................... 1 2 Why Visual................................................................................................................................... Build? 1 3 New Features................................................................................................................................... 2 Version 4 .......................................................................................................................................................... 2 Version 5 .......................................................................................................................................................... 3 Version 6 .......................................................................................................................................................... 4 Version 7 .......................................................................................................................................................... 7 Version 8 .......................................................................................................................................................... 9 Version 9 .........................................................................................................................................................
    [Show full text]
  • Sharepoint Online Custom Solution Resources Applies To: Office 365 Dedicated – Legacy Release
    SharePoint Online Custom Solution Resources Applies to: Office 365 Dedicated – Legacy Release Topic Last Modified: 2014-04-07 This section describes resources available to customers and third party providers building custom solutions for SharePoint Online Dedicated. Custom Solutions Resources for SharePoint Online Dedicated The resources available to developers of SharePoint Online custom solutions include: Custom Solution Policies and Process (FTC) This article describes the policies and process that govern how Microsoft and its subscribers to SharePoint Online for enterprises dedicated plans validate and deploy custom solutions to the SharePoint Online environment. SharePoint Online Custom Solution Developer's Guide (Dedicated Plans) This article provides SharePoint Online Dedicated plan customers with guidelines and best practices to help you develop custom solutions that you can deploy to the SharePoint Online environment. Submitting Custom Solutions to SharePoint Online Using MSOCAF This article describes how to use Microsoft SharePoint Online Code Analysis Framework (MSOCAF), which is the tool you use to validate and submit SharePoint Online custom solutions. SharePoint Online Custom Solution Resources Legacy Release Office 365 Dedicated & ITAR-support Plans © 2015 Microsoft Corporation. All rights reserved. Page 1 of 222 Custom Solution Policies and Process (FTC) Topic Last Modified: 2014-04-11 This article describes the policies and process that govern how Microsoft and its subscribers to SharePoint Online Dedicated validate and deploy custom solutions to the SharePoint Online environment. These custom solutions include solutions and products that are developed by third parties and code developed in-house by customers. Custom solutions can be deployed to any web application in the SharePoint Online Dedicated environment (Portal, Team, Partner, or Personal Sites).
    [Show full text]
  • Micro Focus Enterprise Developer 7.0 Build Tools for Windows
    Micro Focus Enterprise Developer 7.0 Build Tools for Windows Release Notes Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com © Copyright 2021 Micro Focus or one of its affiliates. MICRO FOCUS, the Micro Focus logo and Enterprise Developer are trademarks or registered trademarks of Micro Focus or one of its affiliates. All other marks are the property of their respective owners. 2021-07-06 ii Contents Enterprise Developer Build Tools for Windows Release Notes .....................4 Installation .......................................................................................................... 5 Prerequisites for Using Enterprise Developer Build Tools for Windows .............................. 5 Installing Enterprise Developer Build Tools for Windows .................................................... 5 Microsoft Package Dependencies .......................................................................................6 Managing the Microsoft Build Tools and Windows SDK Packages .....................................7 The Microsoft Build Tools and Windows SDK Configuration Utility .......................... 7 Restrictions .......................................................................................................10 Licensing Considerations ............................................................................... 11 Updates and Customer Care ........................................................................... 12 Further Information and Product Support ........................................................................
    [Show full text]
  • C++Builder XE5 Feature Matrix | Multi-Device, True Native App
    C++Builder® XE5 Multi-device, true native app development with C++ Feature Matrix Feature Architect Ultimate Enterprise Professional Starter INTEGRATED COMPILERS AND TOOLCHAINS Introduced in XE3! C++ 64-bit compiler for Windows X X X X Enhanced in XE3! C++ OS X compiler X X X X Enhanced in XE5! Embarcadero C++ Compiler 6.70 (bcc64) X X X X Enhanced in XE5! Embarcadero C++ Compiler 6.70 (bcc32) X X X X Enhanced in XE3! C++ command line toolchains for Windows X X X X X Enhanced in XE3! C++ command line toolchains for OS X (bccosx) X X X X Create 32-bit optimized native executables that can run on both 32 X X X X X and 64-bit Windows operating systems Enhanced in XE3! ANSI/ISO C++11 and 99 Standard language X X X X conformance and Boost support for 64-bit #pragma once support that allows for better compatibility with MSVC X X X X X and also acts as a header guard [[deprecated]] attribute to flag constructs as deprecated X X X X X Build C++ packages for 32-bit applications X X X X X Secure C library functions X X X X X Enhanced compiler switches for XML representation of source code X X X X X Custom evaluators for C++ Strings types X X X X X Linker error handling to improve memory management flexibility and X X X X X resolution APPLICATION PLATFORMS, INTEGRATED FRAMEWORKS, DESIGNERS AND SDKS Enhanced in XE3! FM Application Platform for creating 32-bit Windows applications for Windows 8, Windows 7, Windows Vista and X X X X X XP; Server 2008 and 2012.
    [Show full text]
  • Pro WCF 4: Practical Microsoft SOA Implementation, Second Edition Copyright © 2011 by Nishith Pathak All Rights Reserved
    CYAN YELLOW MAGENTA BLACK PANTONE 123 C BOOKS FOR PROFESSIONALS BY PROFESSIONALS® THE EXPERT’S VOICE® IN .NET Companion eBook Available Pro WCF 4 Pro WCF 4: Practical Microsoft SOA Implementation is a complete guide to Windows Communication Foundation from the SOA perspective, demonstrat- Pro ing why WCF 4 is critical to service-oriented architecture and development. WCF 4 Gain deep insight into the functionality of WCF 4 and the improvements from the .NET 4.0 Framework – learn about service discovery, the routing ser- vice, a new simplified configuration paradigm, and other advanced features. Deepen your mastery of WCF 4 through informative examples that will aid you Nishith Pathak, Author of in understanding and implementing these important additions. Pro WCF: Practical Microsoft Inside, you’ll find coverage of the unified programming model, reliable mes- SOA Implementation saging, security, and the peer-to-peer programming model. You'll also learn Pro how to move your current .NET remoting and web service applications to WCF and how to integrate those applications with WCF 4. This book offers genuine insight into solving real enterprise problems using WCF and .NET 4.0. In Pro WCF 4, learn more about: • New features of WCF with .NET 4.0 • A comprehensive WCF programming model • How queue management and reliable messaging work in WCF • Implementing transaction support in WCF • Making WCF services interoperable with other SOA offerings • Best practices in using WCF effectively • Developing WCF applications with Visual Studio 2010 WCF 4 The release of .NET 4.0 brought a wide range of new functionality to WCF.
    [Show full text]
  • Intel® C++ Composer XE 2011 for Windows* Installation Guide and Release Notes
    Intel® C++ Composer XE 2011 for Windows* Installation Guide and Release Notes Document number: 321414-003US 30 September 2010 Table of Contents 1 Introduction ......................................................................................................................... 3 1.1 Change History ............................................................................................................ 3 1.2 Product Contents ......................................................................................................... 3 1.3 System Requirements .................................................................................................. 3 1.3.1 IA-64 Architecture (Intel® Itanium®) Development Not Supported ........................ 5 1.4 Documentation ............................................................................................................. 5 1.5 Samples ....................................................................................................................... 5 1.6 Japanese Language Support ....................................................................................... 6 1.7 Technical Support ........................................................................................................ 6 2 Installation ........................................................................................................................... 6 2.1 Pre-installation Steps ................................................................................................... 6 2.1.1 Configure
    [Show full text]
  • Xsupplicant 2.0 Windows Compile Guide Windows Visual Studio 2005 Express with QT Written by Bret Jordan 2007-Oct-03 Version 1.2
    XSupplicant 2.0 Windows Compile Guide Windows Visual Studio 2005 Express with QT Written by Bret Jordan 2007-Oct-03 Version 1.2 This document was written to help users who are trying to compile XSupplicant and XSupplicant UI for windows using Visual Studio 2005 Express. The author offers no guarantees implied or otherwise about the contents of this document or the processes it contains. You will need about 7 GB of free space and about 2-3 hours of time depending on the speed of your computer. Please send updates, correction, and suggestions for improving this document to jordan at open1x littledot org. Credits: The document was written and adapted from various works, namely: 1) http://www.qtnode.net/wiki?title=Qt4_with_Visual_Studio 2) Mike McCauley's write up on getting visual studio express working with XSupplicant 3) Terry Simons' write up on getting QT to work with XSupplicant 1) Install a CVS download tool like TortoiseCVS a) Download Download TortoiseCVS from http://www.tortoisecvs.org/ This will download a file called "TortoiseCVS-1.8.31.exe" to your computer. b) Installation Run the "TortoiseCVS-1.8.31.exe" program. c) Post Installation Setup mkdir c:\CVS\XSupplicant_Project Perform CVS Checkout NOTE: I had to connect to the CVS server to see the modules and branch information Protocol: Secure shell (:ssh:) Server: open1x.cvs.sourceforge.net Repository folder: /cvsroot/open1x Username: anonymous Module: xsupplicant Branch: XSUP_1_3_START_BRANCH 2) Install Visual Studio 2005 Express a) Download Download Visual C++ 2005 Express Edition from http://msdn.microsoft.com/vstudio/express/visualc/ . This will download a file called "vcsetup.exe" to your computer.
    [Show full text]
  • Supported and Compatible Compilers – Release 2017B
    Supported and Compatible Compilers – Release 2017b A number of MathWorks products or product features require that you have a third-party compiler installed on your system. The tables below outline the compilers that are supported by various MathWorks products. These compilers are provided by a number of vendors and are available under a variety of commercial, academic, or open source terms; visit the providers’ websites for further information. Please see Polyspace documentation for the list of compilers that Polyspace supports in the current release. View System Requirements for previous releases. Windows (64-bit) Note: • MinGW 4.9.2 has been updated to MinGW 5.3 as of R2017b • Microsoft Visual C++ 2012 is not supported as of R2017b • Java Development Kit 1.7 has been updated to Java Development Kit 1.8 as of R2017b • Microsoft Windows SDK 7.1 is not supported as of R2017b • Microsoft Visual Studio 2017 is supported as of R2017b. • Intel C++ Composer XE 2013 and Intel Visual Fortran Composer XE 2013 will not be supported in a future release. mathworks.com MATLAB Product Family – Release 2017b Audio MATLAB MATLAB Fixed Point HDL HDL MATLAB MATLAB Compiler SDK SimBiology System Compiler Coder Designer Coder Verifier Toolbox For MEX-file Excel C/C++ .NET Java Excel For all For For For For DPI For Compiler compilation, add-in for & COM add-in features accelerated accelerated accelerated and TLM validating loadlibrary, desktop for computation computation testbench component and and external MPS simulation generation generating usage of audio
    [Show full text]