Download, Install and Setup the Linux Development Workload Create a New Linux Project Configure a Linux Project Configure a Linux CMake Project

Size: px
Start display at page:

Download "Download, Install and Setup the Linux Development Workload Create a New Linux Project Configure a Linux Project Configure a Linux CMake Project"

Transcription

1 Table of Contents Download, Install and Setup the Linux Development Workload Create a New Linux Project Configure a Linux Project Configure a Linux CMake Project Connect to Your Remote Linux Computer Deploy, Run, and Debug Your Linux Project Linux Project Property Page Reference General Properties (Linux) Debugging Properties (Linux) VC++ Directories Properties (Linux) Copy Sources Properties (Linux) C/C++ Properties (Linux) Linker Properties (Linux) Build Event Properties (Linux) Custom Build Step Properties (Linux) Makefile Project Properties (Linux)

2 Download, install, and setup the Linux workload 12/21/ min to read Edit Online Visual Studio setup 1. Start the Visual Studio installer and select the Linux development with C++ workload. 2. Click Install to continue with the installation. Linux setup The target Linux computer must have openssh-server, g++, gdb, and gdbserver installed, and the ssh daemon must be running. If these are not already present, you can install them as follows: 1. At a shell prompt on your Linux computer, run: sudo apt-get install openssh-server g++ gdb gdbserver You may be prompted for your root password due to the sudo command. If so, enter it and continue. Once complete, these services and tools will be installed. 2. Ensure the ssh service is running on your Linux computer by running: sudo service ssh start This will start the service and run it in the background, ready to accept connections.

3 Create a New Linux Project 12/21/ min to read Edit Online When coding for Linux, you have the choice of creating a Visual Studio project, or a CMake project. This topic describes how to create a Visual Studio project. For information about CMake Projects, see Configure a Linux CMake Project. To create a new Linux project in Visual Studio, do the following: 1. Select File > New Project in Visual Studio, or press Ctrl + Shift + N. 2. Select the Visual C++ > Cross Platform > Linux node and then select the project type you would like to create, enter a Name/Location, and click OK. PROJECT TYPE Blink (Raspberry) Console Application (Linux) Empty Project (Linux) Makefile Project (Linux) Project targeted for a Raspberry Pi device with sample code written to blink an LED Project targeted for any Linux computer with sample code written to output text to the console Project targeted for any Linux computer with no sample code written Project targeted for any Linux computer which will be built using a standard Makefile build system

4 Configure a Linux Project 12/21/ min to read Edit Online This topic describes how to configure a Visual Studio Linux project. For information about CMake Linux Projects, see Configure a Linux CMake Project. General settings A variety of options can be configured for a Linux project with Visual Studio. To view these options, select the Project > Properties menu, or right click on the project in Solution Explorer and select Properties from the context menu. The General settings appear. By default, an executable (.out) is built with the tool. To build a static or dynamic library, or to use an existing Makefile, use the Configuration Type selection. Remote settings To change settings pertaining to the remote Linux computer, configure the remote options that appear in the General settings: To change the target Linux computer, use the Remote Build Machine entry. This will allow you to select one of the connections created previously. To create a new entry, please see the Connecting to Your Remote Linux Computer section. The Remote Build Root Directory determines the root location of where the project is built on the remote Linux computer. This will default to ~/projects unless changed. The Remote Build Project Directory is where this specific project will be built on the remote Linux computer. This will default to $(RemoteRootDir)/$(ProjectName), which will expand to a directory named after the current project, under the root directory set above. NOTE To change the default C and C++ compilers, or the Linker and Archiver used to build the project, use the appropriate entries in the C/C++ > General section and the Linker > General section. These could be set to use a certain version of GCC, or even the Clang compiler, for example. VC++ directories By default, Visual Studio does not include any system-level include files from the Linux computer. For example, items in the /usr/include directory are not present in Visual Studio. For full IntelliSense support, you will need to copy those files to some location on your development computer and point Visual Studio to this location. One option is to use scp (Secure Copy) to copy the files. On Windows 10, you can use Bash on Windows to run scp. For previous versions of Windows, you could use something like PSCP (PuTTY Secure Copy). You can copy the files by using a command similar to the following: scp -r linux_username@remote_host:/usr/include. Of course, replace the linux_username and remote_host values above for what's appropriate in your own environment. Once the files are copied, use the VC++ Directories item in Project properties to tell Visual Studio where to find the additional include files that were just copied.

5 Copy sources When building, the source files on your development PC are copied to the Linux computer and compiled there. By default, all sources in the Visual Studio project are copied to the locations set in the settings above. However, additional sources can also be added to the list, or copying sources can be turned off entirely, which is the default for a Makefile project. Sources to copy determines which sources are copied to the remote computer. By default, defaults to all source code files in the project, but does not include any asset/resource files, such as images. Copy sources can be turned on and off to enable and disable the copying of source files to the remote computer. Additional sources to copy allows you to add additional source files which will be copied to the remote system. You can specify a semi-colon delimited list, or you can use the := syntax to specify a local and remote name to use: C:\Projects\ConsoleApplication1\MyFile.cpp:=~/projects/ConsoleApplication1/ADifferentName.cpp;C:\Projects\ConsoleApplication1\MyFile2.cpp:=~/projects/ConsoleApplication1/ADifferentName Build events Since all compilation is happening on a remote computer, several additional Build Events have been added to the Build Events section in Project Properties. These are Remote Pre-Build Event, Remote Pre-Link Event, and Remote Post-Build Event, and will occur on the remote computer before or after the individual steps in the process. See Also Working with Project Properties C++ General Properties (Linux C++) VC++ Directories (Linux C++) Copy Sources Project Properties (Linux C++) Build Event Properties (Linux C++)

6 Configure a Linux CMake project 12/21/ min to read Edit Online Visual Studio 2017 version 15.4 When you install the Linux C++ workload, CMake support for Linux is selected by default. You can now work on your existing code base that uses CMake without having to convert it to a Visual Studio project. If your code base is cross-platform, you can target both Windows and Linux from within Visual Studio. This topic assumes you have basic familiarity with CMake support in Visual Studio. For more information, see CMake Tools for Visual C++. For more information about CMake itself, see Build, Test and Package Your Software With CMake. NOTE The CMake support in Visual Studio requires the server mode support that was introduced in CMake 3.8. If your package manager provides an older version of CMake, you can work around it by building CMake 3.8 from source. Open a folder To get started, choose File Open Folder from the main menu or else type devenv.exe <foldername> on the command line. The folder you open should have a CMakeLists.txt file in it, along with your source code. The following example shows a simple CMakeLists.txt file and.cpp file: // Hello.cpp #include <iostream>; int main(int argc, char* argv[]) { std::cout << "Hello" << std::endl; } CMakeLists.txt: project (hello-cmake) add_executable(hello-cmake hello.cpp) Choose a Linux target As soon as you open the folder, Visual Studio parses the CMakeLists.txt file and specifies a Windows target of x86- Debug. To target Linux, change the project settings to Linux-Debug or Linux-Release. By default, Visual Studio chooses the first remote system in the list (under Tools Options Cross Platform Connection Manager). If no remote connections are found, you are prompted to create one. After you specify a Linux target, your source is copied to your Linux machine. Then, CMake is run on the Linux machine to generate the CMake cache for your project.

7 Debug the project To debug your code on the remote system, set a breakpoint, select the CMake target as the startup item in the toolbar menu next to the project setting, and click run (or press F5). Configure CMake Settings for Linux To change the default CMake settings, choose CMake Change CMake Settings CMakeLists.txt from the main menu, or right-click CMakeSettings.txt in Solution Explorer and choose Change CMake Settings. Visual Studio then creates a new file in your folder called CMakeSettings.json that is populated with the default configurations that are listed in the project settings menu item. The following example shows the default configuration for Linux- Debug based on the previous code example: { } "name": "Linux-Debug", "generator": "Unix Makefiles", "remotemachinename": "${defaultremotemachinename}", "configurationtype": "Debug", "remotecmakelistsroot": "/var/tmp/src/${workspacehash}/${name}", "cmakeexecutable": "/usr/local/bin/cmake", "buildroot": "${env.localappdata}\\cmakebuilds\\${workspacehash}\\build\\${name}", "remotebuildroot": "/var/tmp/build/${workspacehash}/build/${name}", "remotecopysources": true, "remotecopysourcesoutputverbosity": "Normal", "remotecopysourcesconcurrentcopies": "10", "cmakecommandargs": "", "buildcommandargs": "", "ctestcommandargs": "", "inheritenvironments": [ "linux-x64" ]

8 The name value can be whatever you like. The remotemachinename value specifies which remote system to target, in case you have more than one. IntelliSense is enabled for this field to help you select the right system. The field remotecmakelistsroot specifies where your project sources will be copied to on the remote system. The field remotebuildroot is where the build output will be generated on your remote system. That output is also copied locally to the location specified by buildroot. Building a supported CMake release from source The minimum version of CMake required on your Linux machine is 3.8, and it must also support server mode. To verify this run this command: cmake --version To verify that server mode is enabled, run: cmake -E capabilities In the output, look for servermode :true. Note that even when you compile CMake from source as described below you should check the capabilities when done. Your Linux system may have limitations that prevent server mode from being enabled. To get started building from source in the shell for your Linux system make sure your package manager is up to date, and that you have git and cmake available. First, clone the CMake sources: sudo apt-get update sudo apt-get install -y git cmake git clone cd CMake Next, make sure you are on a supported release of CMake for Visual Studio. We are actively tracking CMake development, but we cannot guarantee we support the latest. To build CMake (for example), first run: git checkout tags/v3.9.0 Next, run the following commands: mkdir out cd out cmake../ make sudo make install The above commands build and install the current release of CMake to /usr/local/bin. Run this command to verify the version is >= 3.8 and that server mode is enabled: /usr/local/bin/cmake version cmake -E capabilities See Also Working with Project Properties CMake Tools for Visual C++

9

10 Connect to Your remote Linux computer 12/21/ min to read Edit Online When building, Linux code is copied to your remote Linux computer and then compiled on that system according to the settings chosen in Visual Studio. To setup this remote connection: 1. Build the project for the first time or manually create a new entry by selecting Tools > Options and then open the Cross Platform > Connection Manager node and click the Add button. In either scenario, the Connect to Remote System window will be displayed.

11 2. Enter the following information: ENTRY Host Name Name or IP address of your target device Port Port that the SSH service is running on, typically 22 User name Authentication type Password Private key file Passphrase User to authenticate as Password or Private Key are both supported Password for the entered user name Private key created for ssh connection Passphrase used with private key selected above 3. Click the Connect button to attempt a connection to the remote computer. If the connection fails, the entry boxes which need to be changed will be outlined in red.

12 Deploy, run, and debug your Linux project 1/31/ min to read Edit Online Once you have created a Linux project and you have connected to the project using the Linux Connection Manager, you can run and debug the project. You compile, execute, and debug the code on the remote target. There are several ways to interact with and debug your Linux project. Debug using traditional Visual Studio features, such as breakpoints, watch windows, and hovering over a variable. Using these methods, you may debug as you normally would for other project types. View output from the target computer in a special Linux Console window. You can also use the console to send input to the target computer. NOTE For ARM debugging on Linux, see this blog post: Debugging an embedded ARM device in Visual Studio. Debug your Linux project 1. Select debugging mode in the Debugging property page. GDB is used to debug applications running on Linux. However, this can run in two different modes, which can be selected from the Debugging Mode option in the project's Debugging property page: In gdbserver mode, GDB is run locally which connects to gdbserver running on the remote system. Note that this is the only mode which the Linux Console window supports. In gdb mode, the Visual Studio debugger drives GDB on the remote system, which is more

13 compatible if the local version of GDB is not compatible with the version installed on the target computer. NOTE If you are unable to hit breakpoints in gdbserver debugging mode, try gdb mode. gdb must first be installed on the remote target. 2. Select the remote target using the standard Debug toolbar in Visual Studio. When the remote target is available, you will see it listed by either name or IP address. If you have not yet connected to the remote target, you will see an instruction to use Linux Connection Manager to connect to the remote target. 3. Set a breakpoint by clicking in the left gutter of some code that you know will execute. A red dot appears on the line of code where you set the breakpoint. 4. Press F5 (or Debug > Start Debugging) to start debugging. When you start debugging, the application is compiled on the remote target before it starts. Any compilation errors will appear in the Error List window. If there are no errors, the app will start and the debugger will pause at the breakpoint. Now, you can interact with the application in it's current state, view variables, and step through code by pressing command keys such as F10 or F If you want to use the Linux Console to interact with your app, select Debug > Linux Console.

14 This console will display any console output from the target computer as well as take input and send it to the target computer. Configure other debugging options Command line arguments can be passed to the executable using the Program Arguments item in the project's Debugging property page.

15 Specific debugger options can be passed to GDB using the Additional Debugger Commands entry. For example, you might want to ignore SIGILL (illegal instruction) signals. You could use the handle command to achieve this. by adding the following to the Additional Debugger Commands entry as shown above: handle SIGILL nostop noprint See also C++ Debugging Properties (Linux C++).

16 Linux Project Property Page Reference 12/21/ min to read Edit Online This section contains reference content for property pages in a Visual C++ Linux project. General Properties (Linux) Debugging Properties (Linux) VC++ Directories Properties (Linux) Copy Sources Properties (Linux) C/C++ Properties (Linux) Linker Properties (Linux) Build Event Properties (Linux) Custom Build Step Properties (Linux) Makefile Project Properties (Linux)

17 General Properties (Linux C++) 1/3/ min to read Edit Online PROPERTY CHOICES Output Directory Intermediate Directory Target Name Target Extension Extensions to Delete on Clean Build Log File Platform Toolset Remote Build Machine Remote Build Root Directory Remote Build Project Directory Configuration Type Use of STL Specifies a relative path to the output file directory; can include environment variables. Specifies a relative path to the intermediate file directory; can include environment variables. Specifies a file name that this project will generate. Specifies a file extension that this project will generate. (Example:.a) Semi-colon delimited wildcard specification for which files in the intermediate directory to delete on clean or rebuild. Specifies the build log file to write to when build logging is enabled. Specifies the toolset used for building the current configuration; If not set, the default toolset is used The target machine or device to use for remote build, deploy and debug. Specifies a path to a directory on the remote machine or device. Specifies a path to a directory on the remote machine or device for the project. Specifies the type of output this configuration generates. Specifies which C++ Standard Library to use for this configuration. Dynamic Library (.so) - Dynamic Library (.so) Static library (.a) - Static Library (.a) Application (.out) - Application (.out) Makefile - Makefile Shared GNU Standard C++ Library Static GNU Standard C++ Library (- static)

18 C++ Debugging Properties (Linux C++) 1/3/ min to read Edit Online PROPERTY CHOICES Pre-Launch Command Program Program Arguments Working Directory Additional Debugger Commands Debugger Port Number Remote Debugger Port Number Debugging Mode Additional Symbol Search Paths A command that is run on the shell before the debugging starts and before the debugger is running, and can be used to affect the debugging environment. The full path to the program to debug on the remote system. This is a path on the remote system. If left empty or unchanged it defaults to the current project output. The command line arguments to pass to the program being debugged. The remote application's working directory. By default, the user home directory. Additional gdb commands for the debugger to run before starting debugging. The port number for debugger communication with the remote debugger. The port must not be in use locally. This value must be positive in between 1 and If not supplied a free port number will be used. The port number on which the remote debugger server (gdbserver) is listening on on the remote system. The port must not be in use on the remote system. This value must be positive in between 1 and If not supplied a free port number starting from 4444 will be used. Specifies how the debugger interfaces with gdb. In the gdb mode the debugger drives gdb over the shell on the remote system. In the gdbserver mode, gdb is running locally and connects to gdbserver running remotely. Additional search path for debug symbols (solib-search-path). gdbserver gdb

19 PROPERTY CHOICES Debug Child Processes Enable Python Pretty Printing Visualization File Additional Sources File Path Map Specifies whether to enable debugging of child processes. Enable pretty printing of expression values. Only supported in gdb debugging mode. Default native visualization file (.natvis) containing visualization directives for SLT types. Other.natvis files that belong to the current solution will be loaded automatically. Additional path equivalences for the debugger to use to map Windows source file names to Linux source file names. The format is "<windowspath>=<linux-path>;...". A source file name found under the Windows path will be referenced as if is has been found in the same relative position under the Linux path. Files found in the local project do not require additional mapping.

20 VC++ Directories (Linux C++) 1/3/ min to read Edit Online PROPERTY Include Directories Library Directories Source Directories Exclude Directories Path to use when searching for include files while building a VC++ project. Corresponds to environment variable INCLUDE. Path to use when searching for library files while building a VC++ project. Corresponds to environment variable LIB. Path to use when searching for source files to use for Intellisense. Path to skip when searching for scan dependencies.

21 Copy Sources Project Properties (Linux C++) 1/3/ min to read Edit Online The properties set on this property page apply to all files in the project except whose file-level properties are set. PROPERTY Sources To Copy Copy Sources Additional Sources To Copy Specifies the sources to copy to the remote system. Changing this list might shift or otherwise affect the directory structure where files are copied to on the remote system. Specifies whether to copy the sources to the remote system. Specifies additional sources to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system.

22 C/C++ Properties (Linux C++) 12/21/ min to read Edit Online General PROPERTY CHOICES Additional Include Directories Debug Information Format Object File Name Warning Level Treat Warnings As Errors C Additional Warnings C++ Additional Warnings Enable Verbose mode C Compiler C++ Compiler Specifies one or more directories to add to the include path; separate with semicolons if more than one. (-I[path]). Specifies the type of debugging information generated by the compiler. Specifies a name to override the default object file name; can be file or directory name. (-o [name]). Select how strict you want the compiler to be about code errors. Other flags should be added directly to Additional Options. (/w, /Weverything). Treats all compiler warnings as errors. For a new project, it may be best to use /Werror in all compilations; resolving all warnings will ensure the fewest possible hard-to-find code defects. Defines a set of additional warning messages. Defines a set of additional warning messages. When Verbose mode is enabled, this tool would print out more information that for diagnosing the build. Specifies the program to invoke during compilation of C source files, or the path to the C compiler on the remote system. Specifies the program to invoke during compilation of C++ source files, or the path to the C++ compiler on the remote system. None - Produces no debugging information, so compilation may be faster. Minimal Debug Information - Generate minimal debug information. Full Debug Information (DWARF2) - Generate DWARF2 debug information. Turn Off All Warnings - Disables all compiler warnings. EnableAllWarnings - Enables all warnings, including those disabled by default.

23 PROPERTY CHOICES Compile Timeout Copy Object Files Remote compilation timeout, in milliseconds. Specifies whether to copy the compiled object files from the remote system to the local machine. Optimization PROPERTY CHOICES Optimization Strict Aliasing Unroll Loops Link Time Optimization Omit Frame Pointer No Common Blocks Preprocessor Specifies the optimization level for the application. Assume the strictest aliasing rules. An object of one type will never be assumed to reside at the same address as an object of a different type. Unroll loops to make application faster by reducing number of branches executed at the cost of larger code size. Enable Inter-Procedural optimizations by allowing the optimizer to look across object files in your application. Suppresses creation of frame pointers on the call stack. Allocate even unintialized global variables in the data section of the object file, rather then generating them as common blocks Custom - Custom optimization. Disabled - Disable optimization. Minimize Size - Optimize for size. Maximize Speed - Optimize for speed. Full Optimization - Expensive optimizations. PROPERTY CHOICES Preprocessor Definitions Undefine Preprocessor Definitions Undefine All Preprocessor Definitions Defines a preprocessing symbols for your source file. (-D) Specifies one or more preprocessor undefines. (-U [macro]) Undefine all previously defined preprocessor values. (-undef)

24 PROPERTY CHOICES Show Includes Generates a list of include files with compiler output. (-H) Code Generation PROPERTY CHOICES Position Independent Code Statics are thread safe Floating Point Optimization Inline Methods Hidden Symbol Hiddens By Default Enable C++ Exceptions Language Generate Position Independent Code (PIC) for use in a shared library. Emit Extra code to use routines specified in C++ ABI for thread safe initilization of local statics. Enables floating point optimizations by relaxing IEEE-754 compliance. When enabled, out-of-line copies of inline methods are declared 'private extern'. All symbols are declared 'private extern' unless explicitly marked to be exported using the ' attribute' macro. Specifies the model of exception handling to be used by the compiler. No - Disable thread safe statics. Yes - Enable thread safe statics. No - Disable exception handling. Yes - Enable exception handling. PROPERTY CHOICES Enable Run-Time Type Information Adds code for checking C++ object types at run time (runtime type information). (frtti, fno-rtti) C Language Standard Determines the C language standard. Default C89 - C89 Language Standard. C99 - C99 Language Standard. C11 - C11 Language Standard. C99 (GNU Dialect) - C99 (GNU Dialect) Language Standard. C11 (GNU Dialect) - C11 (GNU Dialect) Language Standard.

25 PROPERTY CHOICES C++ Language Standard Advanced Determines the C++ language standard. Default C C++03 Language Standard. C C++11 Language Standard. C C++14 Language Standard. C++03 (GNU Dialect) - C++03 (GNU Dialect) Language Standard. C++11 (GNU Dialect) - C++11 (GNU Dialect) Language Standard. C++14 (GNU Dialect) - C++14 (GNU Dialect) Language Standard. PROPERTY CHOICES Compile As Select compile language option for.c and.cpp files. 'Default' will detect based on.c or.cpp extention. (-x c, -x c++) Default - Default. Compile as C Code - Compile as C Code. Compile as C++ Code - Compile as C++ Code. Forced Include Files One or more forced include files (- include [name]) Additional Options

26 Linker Properties (Linux C++) 1/3/ min to read Edit Online General PROPERTY CHOICES Output File Show Progress Version Enable Verbose Output Trace Trace Symbols Print Map Report Unresolved Symbol References Optimize For Memory Usage Shared Library Search Path Additional Library Directories Linker Link Timeout Copy Output The option overrides the default name and location of the program that the linker creates. (-o) Prints Linker Progress Messages. The -version option tells the linker to put a version number in the header of the executable. The -verbose option tells the linker to output verbose messages for debugging. The --trace option tells the linker to output the input files as are processed. Print the list of files in which a symbol appears. (--trace-symbol=symbol) The --print-map option tells the linker to output a link map. This option when enabled will report unresolved symbol references. Optimize for memory usage, by rereading the symbol tables as necessary. Allows the user to populate the shared library search path. (-rpath-link=path) Allows the user to override the environmental library path. (-L folder). Specifies the program to invoke during linking, or the path to the linker on the remote system. Remote linking timeout, in milliseconds. Specifies whether to copy the build output file from the remote system to the local machine.

27 Input PROPERTY CHOICES Ignore Specific Default Libraries Ignore Default Libraries Force Undefined Symbol References Library Dependencies Additional Dependencies Specifies one or more names of default libraries to ignore. (--exclude-libs lib,lib) Ignore default libraries and only search libraries explicitely specified. Force symbol to be entered in the output file as an undefined symbol. (-u symbol --undefined=symbol) This option allows specifying additional libraries to be added to the linker command line. The additional library will be added to the end of the linker command line prefixed with 'lib' and end with the '.a' extension. (-lfile) Specifies additional items to add to the link command line. Debugging PROPERTY CHOICES Debugger Symbol Information Map File Name Advanced Debugger symbol information from the output file. The Map option tells the linker to create a map file with the user specified name. (-Map=) Include All Omit Debugger Symbol Information Only Omit All Symbol Information PROPERTY CHOICES Mark Variables ReadOnly After Relocation Enable Immediate Function Binding Do Not Require Executable Stack Whole Archive This option marks variables read-only after relocation. This option marks object for immediate function binding. This option marks output as not requiring executable stack. Whole Archive uses all code from Sources and Additional Dependencies.

28 Build Event Properties (Linux C++) 1/3/ min to read Edit Online Pre-Build Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-build event tool to run. Specifies a description for the pre-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system. Pre-Link Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-link event tool to run. Specifies a description for the pre-link event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system. Post-Build Event PROPERTY Command Line Description Use In Build Specifies a command line for the post-build event tool to run. Specifies a description for the post-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration.

29 PROPERTY Additional files to copy Specifies additional files to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system. Remote Pre-Build Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-build event tool to run on the remote system. Specifies a description for the pre-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy from the remote system. Optionally the list can be provided as a remote to local mapping pairs using a syntax like this: fullremotepath1:=fulllocalpath1;fullremotepath2:=fulllocalpath 2, where a remote file can be copied to the specified location on the local machine. Remote Pre-Link Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-link event tool to run on the remote system. Specifies a description for the pre-link event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy from the remote system. Optionally the list can be provided as a remote to local mapping pairs using a syntax like this: fullremotepath1:=fulllocalpath1;fullremotepath2:=fulllocalpath 2, where a remote file can be copied to the specified location on the local machine. Remote Post-Build Event PROPERTY Command Line Specifies a command line for the post-build event tool to run on the remote system.

30 PROPERTY Description Use In Build Additional files to copy Specifies a description for the post-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy from the remote system. Optionally the list can be provided as a remote to local mapping pairs using a syntax like this: fullremotepath1:=fulllocalpath1;fullremotepath2:=fulllocalpath 2, where a remote file can be copied to the specified location on the local machine.

31 Custom Build Step Properties (Linux C++) 1/3/ min to read Edit Online PROPERTY Command Line Description Outputs Additional Dependencies Execute After and Execute Before Treat Output As Content The command to be executed by the custom build step. A message that's displayed when the custom build step runs. The output file that the custom build step generates. This setting is required so that incremental builds work correctly. A semicolon-delimited list of any additional input files to use for the custom build step. These options define when the custom build step is run in the build process, relative to the listed targets. The most commonly listed targets are BuildGenerateSources, BuildCompile, and BuildLink, because they represent the major steps in the build process. Other often-listed targets are Midl, CLCompile, and Link. This option is only meaningful for Windows Store or Windows Phone apps, which include all content files in the.appx package.

32 Makefile Project Properties (Linux C++) 1/3/ min to read Edit Online This is a partial list of the properties available in a Linux Makefile project. Many Makefile project properties are identical to the Linux C++ Console Application project properties. General PROPERTY CHOICES Output Directory Intermediate Directory Build Log File Configuration Type Remote Build Machine Remote Build Root Directory Remote Build Project Directory Specifies a relative path to the output file directory; can include environment variables. Specifies a relative path to the intermediate file directory; can include environment variables. Specifies the build log file to write to when build logging is enabled. Specifies the type of output this configuration generates. The target machine or device to use for remote build, deploy and debug. Specifies a path to a directory on the remote machine or device. Specifies a path to a directory on the remote machine or device for the project. Dynamic Library (.so) - Dynamic Library (.so) Static library (.a) - Static Library (.a) Application (.out) - Application (.out) Makefile - Makefile Debugging See Debugger Properties (Linux C++) Copy Sources See Copy Sources Project Properties (Linux C++). Build Events Pre-Build Event

33 PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-build event tool to run. Specifies a description for the pre-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system. Post-Build Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the post-build event tool to run. Specifies a description for the post-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy to the remote system. Optionally the list can be provided as a local to remote mapping pairs using a syntax like this: fulllocalpath1:=fullremotepath1;fulllocalpath2:=fullremotepath 2, where a local file can be copied to the specified remote location on the remote system. Remote Pre-Build Event PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the pre-build event tool to run on the remote system. Specifies a description for the pre-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy from the remote system. Optionally the list can be provided as a remote to local mapping pairs using a syntax like this: fullremotepath1:=fulllocalpath1;fullremotepath2:=fulllocalpath 2, where a remote file can be copied to the specified location on the local machine. Remote Post-Build Event

34 PROPERTY Command Line Description Use In Build Additional files to copy Specifies a command line for the post-build event tool to run on the remote system. Specifies a description for the post-build event tool to display. Specifies whether this build event is excluded from the build for the current configuration. Specifies additional files to copy from the remote system. Optionally the list can be provided as a remote to local mapping pairs using a syntax like this: fullremotepath1:=fulllocalpath1;fullremotepath2:=fulllocalpath 2, where a remote file can be copied to the specified location on the local machine. C/C++ IntelliSense The IntelliSense properties can be set at the project or file level to provide clues to the IntelliSense engine. They do not affect compilation. PROPERTY Include Search Path Forced Includes Preprocessor Definitions Undefine Preprocessor Definitions Additional Options Specifies the include search path for resolving included files. Specifies the files that are forced included. Specifies the preprocessor defines used by the source files. Specifies one or more preprocessor undefines. (/U[macro]) Specifies additional compiler switches to be used by Intellisense when parsing C++ files. Build PROPERTY Build Command Line Rebuild All Command Line Clean Command Line Specifies the command line to run for the 'Build' command. Specifies the command line to run for the 'Rebuild All' command. Specifies the command line to run for the 'Clean' command. Remote Build PROPERTY Build Command Line Specifies the command line to run for the 'Build' command. This is executed on the remote system.

35 PROPERTY Rebuild All Command Line Clean Command Line Outputs Specifies the command line to run for the 'Rebuild All' command. This is executed on the remote system. Specifies the command line to run for the 'Clean' command. This is executed on the remote system. Specifies the outputs generated by the remote build on the remote system.

Using Visual Studio and VS Code for Embedded C/C++ Development. Marc Goodner, Principal Program Manager, Microsoft

Using Visual Studio and VS Code for Embedded C/C++ Development. Marc Goodner, Principal Program Manager, Microsoft Using Visual Studio and VS Code for Embedded C/C++ Development Marc Goodner, Principal Program Manager, Microsoft Mission of C++ Product Team at Microsoft (DevDiv) Make the lives of all C++ developers

More information

CMPT 300. Operating Systems. Brief Intro to UNIX and C

CMPT 300. Operating Systems. Brief Intro to UNIX and C CMPT 300 Operating Systems Brief Intro to UNIX and C Outline Welcome Review Questions UNIX basics and Vi editor Using SSH to remote access Lab2(4214) Compiling a C Program Makefile Basic C/C++ programming

More information

Lab 1: First Steps in C++ - Eclipse

Lab 1: First Steps in C++ - Eclipse Lab 1: First Steps in C++ - Eclipse Step Zero: Select workspace 1. Upon launching eclipse, we are ask to chose a workspace: 2. We select a new workspace directory (e.g., C:\Courses ): 3. We accept the

More information

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity

More information

Arguments of C++ Applications g++ options Libraries

Arguments of C++ Applications g++ options Libraries Arguments of C++ Applications g++ options Libraries Shahram Rahatlou University of Rome La Sapienza Corso di Programmazione++ Roma, 23 May 2006 Options of g++ $ man g++ GCC(1) GNU GCC(1) NAME gcc - GNU

More information

Reviewing gcc, make, gdb, and Linux Editors 1

Reviewing gcc, make, gdb, and Linux Editors 1 Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University

More information

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3 Hello, World! in C Johann Myrkraverk Oskarsson October 23, 2018 Contents 1 The Quintessential Example Program 1 I Printing Text 2 II The Main Function 3 III The Header Files 4 IV Compiling and Running

More information

Embedded Systems Programming

Embedded Systems Programming Embedded Systems Programming OS Linux - Toolchain Iwona Kochańska Gdansk University of Technology Embedded software Toolchain compiler and tools for hardwaredependent software developement Bootloader initializes

More information

CodeWarrior Development Studio for Power Architecture Processors FAQ Guide

CodeWarrior Development Studio for Power Architecture Processors FAQ Guide CodeWarrior Development Studio for Power Architecture Processors FAQ Guide Document Number: CWPAFAQUG Rev. 10.x, 06/2015 2 Freescale Semiconductor, Inc. Contents Section number Title Page Chapter 1 Introduction

More information

Module 3: Working with C/C++

Module 3: Working with C/C++ Module 3: Working with C/C++ Objective Learn basic Eclipse concepts: Perspectives, Views, Learn how to use Eclipse to manage a remote project Learn how to use Eclipse to develop C programs Learn how to

More information

Red Hat Developer Tools

Red Hat Developer Tools Red Hat Developer Tools 2018.4 Using Clang and LLVM Toolset Installing and Using Clang and LLVM Toolset Last Updated: 2018-11-29 Red Hat Developer Tools 2018.4 Using Clang and LLVM Toolset Installing

More information

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A FX SERIES Embedded SDK Programmer s Guide MN000540A01 Rev. A Table of Contents About This Guide Introduction...4 Chapter Descriptions... 4 Notational Conventions...5 Related Documents and Software...5

More information

Laboratory Assignment #3 Eclipse CDT

Laboratory Assignment #3 Eclipse CDT Lab 3 September 12, 2010 CS-2303, System Programming Concepts, A-term 2012 Objective Laboratory Assignment #3 Eclipse CDT Due: at 11:59 pm on the day of your lab session To learn to learn to use the Eclipse

More information

Laboratory Assignment #4 Debugging in Eclipse CDT 1

Laboratory Assignment #4 Debugging in Eclipse CDT 1 Lab 4 (10 points) November 20, 2013 CS-2301, System Programming for Non-majors, B-term 2013 Objective Laboratory Assignment #4 Debugging in Eclipse CDT 1 Due: at 11:59 pm on the day of your lab session

More information

Building an Android* command-line application using the NDK build tools

Building an Android* command-line application using the NDK build tools Building an Android* command-line application using the NDK build tools Introduction Libraries and test apps are often written in C/C++ for testing hardware and software features on Windows*. When these

More information

Red Hat Developer Tools

Red Hat Developer Tools Red Hat Developer Tools 2018.2 Using Clang and LLVM Toolset Installing and Using Clang and LLVM Toolset Last Updated: 2018-04-26 Red Hat Developer Tools 2018.2 Using Clang and LLVM Toolset Installing

More information

Lab4 Embedded Linux. Introduction

Lab4 Embedded Linux. Introduction Introduction Lab4 Embedded Linux In this lab we will run Embedded Linux on the Arcom board. This allows us to use operating system services (such as inter-task communication) and use existing software

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ How the compiler works Programs and libraries The compiler In C++, everytime someone writes ">>

More information

Test/Debug Guide. Reference Pages. Test/Debug Guide. Site Map Index

Test/Debug Guide. Reference Pages. Test/Debug Guide. Site Map Index Site Map Index HomeInstallationStartAuthoringStreamSQLTest/DebugAPI GuideAdminAdaptersSamplesStudio GuideReferences Current Location: Home > Test/Debug Guide Test/Debug Guide The following topics explain

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v8.0 September 2016 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.5... 2 2.2.

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ How the compiler works Programs and libraries The compiler In C++, everytime someone writes ">>

More information

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4 Beyond this course Readings: CP:AMA 2.1, 15.4 CS 136 Spring 2018 13: Beyond 1 Machine code In Section 04 we briefly discussed compiling: converting source code into machine code so it can be run or executed.

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v7.0 March 2015 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.0... 2 2.2. New

More information

Lecture 10: building large projects, beginning C++, C++ and structs

Lecture 10: building large projects, beginning C++, C++ and structs CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 10:

More information

Laboratory 1 Semester 1 11/12

Laboratory 1 Semester 1 11/12 CS2106 National University of Singapore School of Computing Laboratory 1 Semester 1 11/12 MATRICULATION NUMBER: In this lab exercise, you will get familiarize with some basic UNIX commands, editing and

More information

HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS

HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS INTRODUCTION A program written in a computer language, such as C/C++, is turned into executable using special translator software.

More information

Continuous Integration INRIA

Continuous Integration INRIA Vincent Rouvreau - https://sed.saclay.inria.fr February 28, 2017 Contents 1 Preamble In this exercise, we will focus on the configuration of Jenkins for: 1. A simple aspect of C++ unit testing 2. An aspect

More information

CSX600 Runtime Software. User Guide

CSX600 Runtime Software. User Guide CSX600 Runtime Software User Guide Version 3.0 Document No. 06-UG-1345 Revision: 3.D January 2008 Table of contents Table of contents 1 Introduction................................................ 7 2

More information

ROS Qt Creator Plug-in. Release

ROS Qt Creator Plug-in. Release ROS Qt Creator Plug-in Release Mar 18, 2018 Contents 1 Installation 1 2 FAQ 13 3 Users Help 15 4 Developers Help 23 5 Video Tutorials 25 i ii CHAPTER 1 Installation 1.1 How to Install (Users) This wiki

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

TUTORIAL: Quickstart with freediameter

TUTORIAL: Quickstart with freediameter 38 TUTORIAL: Quickstart with freediameter How to compile and run freediameter in a simple testbed. Tutorial: Creating a fd testbed 39 Goal : create a simple testbed Two nodes: one client, one server Run

More information

PathFinder-XD for MIPS Powered Devices. Simulator

PathFinder-XD for MIPS Powered Devices. Simulator v.1.0.6, 15 th January 2013 PathFinder-XD for MIPS Powered Devices Simulator Contents 1. Introduction 2 2. Installation 2 2.1 Windows Installation 2 2.2 Linux Installation 2 3. Using PathFinder-XD with

More information

BUILDING TESTING DEBUGGING PACKAGING BUILDING OOREXX

BUILDING TESTING DEBUGGING PACKAGING BUILDING OOREXX BUILDING TESTING DEBUGGING PACKAGING BUILDING OOREXX René Vincent Jansen 27th International Rexx Language Symposium, Tampa 2016 BUILDING OOREXX AGENDA Getting the code Building Testing Debugging Packaging

More information

Saleae Device SDK Starting a Device SDK Project on Windows Starting a Device SDK Project on Linux... 7

Saleae Device SDK Starting a Device SDK Project on Windows Starting a Device SDK Project on Linux... 7 Contents Starting a Device SDK Project on Windows... 2 Starting a Device SDK Project on Linux... 7 Debugging your Project with GDB... 9 Starting a Device SDK Project on Mac... 11 Build Script / Command

More information

DS-5 ARM. Getting Started with DS-5. Version 5.6. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0478F (ID071411)

DS-5 ARM. Getting Started with DS-5. Version 5.6. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0478F (ID071411) ARM DS-5 Version 5.6 Getting Started with DS-5 Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0478F () ARM DS-5 Getting Started with DS-5 Copyright 2010, 2011 ARM. All rights reserved. Release

More information

This document contains information about the ElectricAccelerator Solution Support Add-in. Topics include: Overview 2. New Features and Improvements 2

This document contains information about the ElectricAccelerator Solution Support Add-in. Topics include: Overview 2. New Features and Improvements 2 Electric Cloud ElectricAccelerator version 7.0 Technical Notes MS Visual Studio Solution Support Add-in version 3.2.3 May 2013 This document contains information about the ElectricAccelerator Solution

More information

Setting up my Dev Environment ECS 030

Setting up my Dev Environment ECS 030 Setting up my Dev Environment ECS 030 1 Command for SSHing into a CSIF Machine If you already have a terminal and already have a working ssh program (That is, you type ssh into the terminal and it doesn

More information

manifold Documentation

manifold Documentation manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2

More information

TangeloHub Documentation

TangeloHub Documentation TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU

MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU THIS DOCUMENT CONTAINS IMPORTANT INFORMATION RELATING TO THE MPLAB XC8 C COM- PILER WHEN TARGETING MICROCHIP AVR DEVICES. PLEASE READ IT BEFORE

More information

Module 2: GNU Tools and Compilation Process Introduction to GCC and History The original GNU C Compiler is developed by Richard Stallman in 1984 to create a complete UNIX like operating systems as free

More information

Introduction to C/C++ Programming

Introduction to C/C++ Programming Chapter 1 Introduction to C/C++ Programming This book is about learning numerical programming skill and the software development process. Therefore, it requires a lot of hands-on programming exercises.

More information

Check the Desktop development with C++ in the install options. You may want to take 15 minutes to try the Hello World C++ tutorial:

Check the Desktop development with C++ in the install options. You may want to take 15 minutes to try the Hello World C++ tutorial: CS262 Computer Vision OpenCV 3 Configuration with Visual Studio 2017 Prof. John Magee Clark University Install Visual Studio 2017 Community Check the Desktop development with C++ in the install options.

More information

WRITING CONSOLE APPLICATIONS IN C

WRITING CONSOLE APPLICATIONS IN C WRITING CONSOLE APPLICATIONS IN C with Visual Studio 2017 A brief step-by-step primer for ME30 Bryan Burlingame, San José State University The Visual Studio 2017 Community Edition is a free integrated

More information

CMPSC 311- Introduction to Systems Programming Module: Build Processing

CMPSC 311- Introduction to Systems Programming Module: Build Processing CMPSC 311- Introduction to Systems Programming Module: Build Processing Professor Patrick McDaniel Fall 2016 UNIX Pipes Pipes are ways of redirecting the output of one command to the input of another Make

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

Exercise 1: Basic Tools

Exercise 1: Basic Tools Exercise 1: Basic Tools This exercise is created so everybody can learn the basic tools we will use during this course. It is really more like a tutorial than an exercise and, you are not required to submit

More information

Software Development With Emacs: The Edit-Compile-Debug Cycle

Software Development With Emacs: The Edit-Compile-Debug Cycle Software Development With Emacs: The Edit-Compile-Debug Cycle Luis Fernandes Department of Electrical and Computer Engineering Ryerson Polytechnic University August 8, 2017 The Emacs editor permits the

More information

ENERGY 211 / CME 211. Evolution

ENERGY 211 / CME 211. Evolution ENERGY 211 / CME 211 Lecture 2 September 24, 2008 1 Evolution In the beginning, we all used assembly That was too tedious, so a very crude compiler for FORTRAN was built FORTRAN was still too painful to

More information

Creating a Project Using an Existing Build System

Creating a Project Using an Existing Build System Creating a Project Using an Existing Build System You can use the cpptestscan or cpptesttrace utility to create a C++test project that you would normally build using tools such as GNU make, CMake, and

More information

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform November 8, 2016 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

More information

Tool for Analysing and Checking MPI Applications

Tool for Analysing and Checking MPI Applications Tool for Analysing and Checking MPI Applications April 30, 2010 1 CONTENTS CONTENTS Contents 1 Introduction 3 1.1 What is Marmot?........................... 3 1.2 Design of Marmot..........................

More information

Introduction. Key features and lab exercises to familiarize new users to the Visual environment

Introduction. Key features and lab exercises to familiarize new users to the Visual environment Introduction Key features and lab exercises to familiarize new users to the Visual environment January 1999 CONTENTS KEY FEATURES... 3 Statement Completion Options 3 Auto List Members 3 Auto Type Info

More information

A Tutorial for ECE 175

A Tutorial for ECE 175 Debugging in Microsoft Visual Studio 2010 A Tutorial for ECE 175 1. Introduction Debugging refers to the process of discovering defects (bugs) in software and correcting them. This process is invoked when

More information

RVDS 4.0 Introductory Tutorial

RVDS 4.0 Introductory Tutorial RVDS 4.0 Introductory Tutorial 402v02 RVDS 4.0 Introductory Tutorial 1 Introduction Aim This tutorial provides you with a basic introduction to the tools provided with the RealView Development Suite version

More information

15-323/ Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019

15-323/ Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019 15-323/15-623 Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019 1 Overview In this project, you will create a program that performs real-time audio generation. There

More information

Have examined process Creating program Have developed program Written in C Source code

Have examined process Creating program Have developed program Written in C Source code Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives

More information

FEAP - - A Finite Element Analysis Program

FEAP - - A Finite Element Analysis Program FEAP - - A Finite Element Analysis Program Version 8.5 Installation Manual Robert L. Taylor & Sanjay Govindjee Department of Civil and Environmental Engineering University of California at Berkeley Berkeley,

More information

7 Cmicro Targeting. Tutorial. Chapter

7 Cmicro Targeting. Tutorial. Chapter 7 Cmicro Targeting Tutorial This tutorial takes you through the first steps of targeting. Currently this tutorial is designed for using a Borland C or a Microsoft Visual C compiler in Windows, and gcc

More information

CodeWarrior Development Studio for Advanced Packet Processing FAQ Guide

CodeWarrior Development Studio for Advanced Packet Processing FAQ Guide CodeWarrior Development Studio for Advanced Packet Processing FAQ Guide Document Number: CWAPPFAQUG Rev. 10.2, 01/2016 2 Freescale Semiconductor, Inc. Contents Section number Title Page Chapter 1 Introduction

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912)

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912) ARM DS-5 Version 5.12 Using Eclipse Copyright 2010-2012 ARM. All rights reserved. ARM DUI 0480L () ARM DS-5 Using Eclipse Copyright 2010-2012 ARM. All rights reserved. Release Information The following

More information

EL2310 Scientific Programming

EL2310 Scientific Programming (yaseminb@kth.se) Overview Overview Roots of C Getting started with C Closer look at Hello World Programming Environment Discussion Basic Datatypes and printf Schedule Introduction to C - main part of

More information

Setting up a Chaincoin Masternode

Setting up a Chaincoin Masternode Setting up a Chaincoin Masternode Introduction So you want to set up your own Chaincoin Masternode? You ve come to the right place! These instructions are correct as of April, 2017, and relate to version

More information

CSE 351. GDB Introduction

CSE 351. GDB Introduction CSE 351 GDB Introduction Lab 2 Out either tonight or tomorrow Due April 27 th (you have ~12 days) Reading and understanding x86_64 assembly Debugging and disassembling programs Today: General debugging

More information

Source level debugging. October 18, 2016

Source level debugging. October 18, 2016 Source level debugging October 18, 2016 Source level debugging Source debugging is a nice tool for debugging execution problems; it can be particularly useful when working with crashed programs that leave

More information

2 ABOUT VISUALDSP++ In This Chapter. Figure 2-0. Table 2-0. Listing 2-0.

2 ABOUT VISUALDSP++ In This Chapter. Figure 2-0. Table 2-0. Listing 2-0. 2 ABOUT VISUALDSP++ Figure 2-0. Table 2-0. Listing 2-0. In This Chapter This chapter contains the following topics: What Is VisualDSP++? on page 2-2 VisualDSP++ Features on page 2-2 Program Development

More information

Lab6 GDB debugging. Conventions. Department of Computer Science and Information Engineering National Taiwan University

Lab6 GDB debugging. Conventions. Department of Computer Science and Information Engineering National Taiwan University Lab6 GDB debugging 1 / 15 Learn how to perform source-level debugging with GDB. 2 / 15 Host Machine OS: Windows Target Machine Raspberry Pi (2 or 3) Build Machine A computer with a SD card slot OS: Ubuntu

More information

RVDS 3.0 Introductory Tutorial

RVDS 3.0 Introductory Tutorial RVDS 3.0 Introductory Tutorial 338v00 RVDS 3.0 Introductory Tutorial 1 Introduction Aim This tutorial provides you with a basic introduction to the tools provided with the RealView Development Suite version

More information

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

INSTALLING INSTALLING INSTALLING

INSTALLING INSTALLING INSTALLING Concurrent F77 Version 7.3 Release Notes (PowerMAX) November 2006 0890536-7.3 READ READ READ ME ME ME BEFORE BEFORE BEFORE INSTALLING INSTALLING INSTALLING THIS THIS THIS PRODUCT PRODUCT PRODUCT Copyright

More information

Department of Computer Science and Engineering Yonghong Yan

Department of Computer Science and Engineering Yonghong Yan Appendix A and Chapter 2.12: Compiler, Assembler, Linker and Program Execution CSCE 212 Introduction to Computer Architecture, Spring 2019 https://passlab.github.io/csce212/ Department of Computer Science

More information

6L00IA - Introduction to Synergy Software Package Short Version (SSP v1.2.0) Renesas Synergy Family - S7 Series

6L00IA - Introduction to Synergy Software Package Short Version (SSP v1.2.0) Renesas Synergy Family - S7 Series 6L00IA - Introduction to Synergy Software Package Short Version (SSP v1.2.0) Renesas Synergy Family - S7 Series LAB PROCEDURE Description: The purpose of this lab is to familiarize the user with the Synergy

More information

The Linux Programming Environment. Computer Science Department Texas State University

The Linux Programming Environment. Computer Science Department Texas State University The Linux Programming Environment Computer Science Department Texas State University TUTORIAL REQUIREMENTS... 1 INTRODUCTION... 1 COMPILATION... 1 COMMAND LINE COMPILATION... 1 Basic Compilation... 2 The

More information

Relarium (RLM) Masternode Guide for VPS

Relarium (RLM) Masternode Guide for VPS Relarium (RLM) Masternode Guide for VPS Table of Contents Requirements 2 VPS Set-up 2 Create a MasterNode Address (ALIAS) & send collateral 4 MasterNode private key & Index ID 5 Edit Configuration files

More information

Debugging (Part 1) The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 5

Debugging (Part 1) The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 5 Debugging (Part 1) The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 5 1 For Your Amusement When debugging, novices insert corrective code; experts

More information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

Using a debugger. Segmentation fault? GDB to the rescue!

Using a debugger. Segmentation fault? GDB to the rescue! Using a debugger Segmentation fault? GDB to the rescue! But first... Let's talk about the quiz Let's talk about the previous homework assignment Let's talk about the current homework assignment K findkey(v

More information

QNX Software Development Platform 6.6. Quickstart Guide

QNX Software Development Platform 6.6. Quickstart Guide QNX Software Development Platform 6.6 QNX Software Development Platform 6.6 Quickstart Guide 2005 2014, QNX Software Systems Limited, a subsidiary of BlackBerry. All rights reserved. QNX Software Systems

More information

Optional Eclipse Workspace Configurations

Optional Eclipse Workspace Configurations 2019/01/08 11:20 1/16 This page will instruct you to install and configure Eclipse as your MidiBox Integrated Development Environment (IDE). Eclipse is supported on multiple platforms, including Windows,

More information

μc/probe on the element14 BeagleBone Black

μc/probe on the element14 BeagleBone Black Micriμm μc/probe on the element14 BeagleBone Black 1. Introduction Whether you are doing kernel, driver or application development in a Linux environment, it's likely that at some point, you will need

More information

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes Git Charles J. Geyer School of Statistics University of Minnesota Stat 8054 Lecture Notes 1 Before Anything Else Tell git who you are. git config --global user.name "Charles J. Geyer" git config --global

More information

LTC Data Converter Board For The Arrow SoCKit Linux Application User s Guide

LTC Data Converter Board For The Arrow SoCKit Linux Application User s Guide LTC Data Converter Board For The Arrow SoCKit Linux Application User s Guide Revision 7.0 21 Aug 2013 1 of 32 Table of Contents Introduction... 4 Board Connections... 4 Board Setup... 4 Installing Linux...

More information

Eli System Administration Guide

Eli System Administration Guide Eli System Administration Guide Compiler Tools Group Department of Electrical and Computer Engineering University of Colorado Boulder, CO, USA 80309-0425 Copyright c 2002, 2009 The Regents of the University

More information

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 In this lab, you will first learn more about git. After that, you will get some practice on the make utility and learn more

More information

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010 CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010 The process of creating a project with Microsoft Visual Studio 2010.Net is similar to the process in Visual

More information

2 COMPILER. Overview. Figure 2-0. Table 2-0. Listing 2-0.

2 COMPILER. Overview. Figure 2-0. Table 2-0. Listing 2-0. 2 COMPILER Figure 2-0. Table 2-0. Listing 2-0. Overview The C/C++ compiler (ccts) compiles ANSI/ISO standard C and C++ code for TigerSHARC family DSPs. Additionally, Analog Devices includes within the

More information

How to cross compile with LLVM based tools. Peter Smith, Linaro

How to cross compile with LLVM based tools. Peter Smith, Linaro How to cross compile with LLVM based tools Peter Smith, Linaro Introduction and assumptions What we are covering Today About me What is cross compilation? How does cross compilation work with Clang and

More information

Dixicoin (DXC) Masternode Guide for VPS

Dixicoin (DXC) Masternode Guide for VPS Dixicoin (DXC) Masternode Guide for VPS Table of Contents Requirements 2 VPS Set-up 2 Create a MasterNode Address (ALIAS) & send collateral 4 MasterNode private key & Index ID 5 Edit Configuration files

More information

INTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4

INTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4 Copyright 2002 Denicomp Systems. All rights reserved. INTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4 Usage... 4 Parameters... 4 Source

More information

ROS - LESSON 2. Curso Development environment setup. ROS packages structure. ROS Integration with Eclipse. Writing your first Node

ROS - LESSON 2. Curso Development environment setup. ROS packages structure. ROS Integration with Eclipse. Writing your first Node Curso 2017-18 Development environment setup ROS packages structure ROS Integration with Eclipse JUAN CARLOS ALVAREZ JUAN@UNIOVI.ES Writing your first Node Running and debugging ROS - LESSON 2 ROS DEVELOPMENT

More information

SwanSim - A Guide to Git / SourceTree / GitLab for Windows

SwanSim - A Guide to Git / SourceTree / GitLab for Windows SwanSim - A Guide to Git / SourceTree / GitLab for Windows Dr Jason W. Jones College of Engineering, Swansea University September 2017 Contents 1 Introduction... 2 2 Obtaining the Software... 3 2.1 Software

More information

Code::Blocks Student Manual

Code::Blocks Student Manual Code::Blocks Student Manual Lawrence Goetz, Network Administrator Yedidyah Langsam, Professor and Theodore Raphan, Distinguished Professor Dept. of Computer and Information Science Brooklyn College of

More information

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2 CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule

More information

INTERMEDIATE SOFTWARE DESIGN SPRING 2011 ACCESS SPECIFIER: SOURCE FILE

INTERMEDIATE SOFTWARE DESIGN SPRING 2011 ACCESS SPECIFIER: SOURCE FILE HEADER FILE A header (.h,.hpp,...) file contains Class definitions ( class X {... }; ) Inline function definitions ( inline int get_x() {... } ) Function declarations ( void help(); ) Object declarations

More information

COBOL-IT Developer Studio Getting Started The Debugger Perspective Version 2.0

COBOL-IT Developer Studio Getting Started The Debugger Perspective Version 2.0 COBOL-IT Developer Studio Getting Started The Debugger Perspective Version 2.0 Page 1 ACKNOWLEDGMENT... 4 COBOL-IT DEVELOPER STUDIO TOPICS... 5 Introduction... 5 COBOL-IT Developer Studio License terms...

More information

Module 4: Working with MPI

Module 4: Working with MPI Module 4: Working with MPI Objective Learn how to develop, build and launch a parallel (MPI) program on a remote parallel machine Contents Remote project setup Building with Makefiles MPI assistance features

More information