aboutsummaryrefslogtreecommitdiffstats
path: root/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc
diff options
context:
space:
mode:
authorLeena Miettinen <riitta-leena.miettinen@qt.io>2020-01-23 11:45:07 +0100
committerLeena Miettinen <riitta-leena.miettinen@qt.io>2020-01-27 09:05:07 +0000
commit5fc456dd2283b2d1e6c4e6d34856052658f34cc4 (patch)
tree7a7cd26a33014e401536a149fa47f6586b68c247 /doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc
parentc9f90047ac701416e439f492069c1a0bb364fc08 (diff)
Doc: Rearrange files in the doc folder
Source and configuration files for each manual are now located in a separate subdirectory, with common configuration files in doc/config. doc |_config |_qtcreator |_qtcreatordev |_qtdesignstudio Edit the config files accordingly. Change-Id: Idc747a7c16e84f3e06add91234dc5fc908e64cc5 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc')
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc285
1 files changed, 285 insertions, 0 deletions
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc
new file mode 100644
index 0000000000..30d39dbffa
--- /dev/null
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc
@@ -0,0 +1,285 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Creator documentation.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+**
+****************************************************************************/
+
+// **********************************************************************
+// NOTE: the sections are not ordered by their logical order to avoid
+// reshuffling the file each time the index order changes (i.e., often).
+// Run the fixnavi.pl script to adjust the links to the index order.
+// **********************************************************************
+
+/*!
+ \contentspage index.html
+ \previouspage creator-project-qmake.html
+ \page creator-tool-chains.html
+ \nextpage creator-debuggers.html
+
+ \title Adding Compilers
+
+ Qt is supported on a variety of 32-bit and 64-bit platforms, and can
+ usually be built on each platform with GCC, a vendor-supplied compiler, or
+ a third party compiler. In \QC, a \l{glossary-buildandrun-kit}{kit}
+ specifies the compiler and other necessary tools for building an application
+ for and running it on a particular platform.
+
+ \QC automatically detects the compilers that are registered by your system
+ or by an installer and lists them in \uicontrol Tools > \uicontrol Options >
+ \uicontrol Kits > \uicontrol Compilers:
+
+ \image qtcreator-toolchains.png
+
+ You can add the following compilers to build applications by using other
+ compilers or by using additional versions of the automatically detected
+ compilers:
+
+ \list
+
+ \li GNU Compiler Collection (GCC) is a compiler for Linux and
+ \macos.
+
+ \li MinGW (Minimalist GNU for Windows) is a native software port of GCC
+ and GNU Binutils for use in the development of native Microsoft
+ Windows applications on Windows. MinGW is
+ distributed together with \QC and Qt installers for Windows.
+
+ \li ICC (Intel C++ Compiler) is a group of C and C++ compilers.
+ Only the GCC-compatible variant, available for Linux and \macos,
+ is currently supported by \QC.
+
+ \li Clang is a C, C++, Objective C, and Objective C++ front-end for the
+ LLVM compiler for Windows, Linux, and \macos.
+
+ \li \l{https://clang.llvm.org/docs/UsersManual.html#clang-cl}{clang-cl}
+ is an alternative command-line interface to Clang that is compatible
+ with the Visual C++ compiler, \c cl.exe.
+
+ \li Nim is the Nim Compiler for Windows, Linux, and \macos.
+
+ \li QCC is the interface for compiling C++ applications for QNX.
+
+ \endlist
+
+ In addition, the \QC Bare Metal Device plugin provides support for the
+ following compilers:
+
+ \list
+
+ \li \l{https://www.iar.com/iar-embedded-workbench/}{IAREW} is a group of
+ C and C++ bare-metal compilers from the various IAR Embedded Workbench
+ development environments.
+ \note Currently supported architectures are \c 8051, \c AVR, \c ARM,
+ \c STM8, and \c MSP430.
+
+ \li \l{https://www.keil.com}{KEIL} is a group of C and C++ bare-metal
+ compilers from the various KEIL development environments.
+ \note Currently supported architectures are \c 8051 and \c ARM.
+
+ \li \l{https://sdcc.sourceforge.net}{SDCC} is a retargetable, optimizing
+ C bare-metal compiler for various architectures.
+ \note Currently supported architectures are \c 8051 and \c STM8.
+
+ \endlist
+
+ \section1 Redetecting Compilers
+
+ When \QC finds an x86_64 GCC compiler, it sets up an instance for the native
+ x86_64 target. If you plan to create also 32-bit x86 binaries without using
+ a dedicated cross-compiler, select \uicontrol {Auto-detection Settings} >
+ \uicontrol {Detect x86_64 GCC compilers as x86_64 and x86}. Then select
+ \uicontrol Re-detect to refresh the list of automatically detected
+ compilers.
+
+ To remove manually added compilers, select \uicontrol Remove or
+ \uicontrol {Remove All}.
+
+ \section1 Specifying Compiler Settings
+
+ To build an application using GCC, MinGW, Clang, or QCC, specify the path
+ to the directory where the compiler is located and select
+ the application binary interface (ABI) version from the list of available
+ versions. You can also create a custom ABI definition.
+ For QCC, also specify the path to the QNX Software Development Platform (SDP).
+
+ To enable Microsoft Visual C++ Compilers (MSVC) and clang-cl to find system
+ headers, libraries, and the linker, \QC executes them inside a command
+ prompt where the environment has been set up using \c {vcvarsall.bat}. For
+ these compilers, you also specify the path to the script that sets up the
+ command prompt.
+
+ You specify the compiler to use for each kit in \uicontrol Tools >
+ \uicontrol Options > \uicontrol Kits.
+
+ To add C or C++ compilers:
+
+ \list 1
+
+ \li Select \uicontrol Tools > \uicontrol Options >
+ \uicontrol Kits > \uicontrol Compilers > \uicontrol Add,
+ then select a compiler in the list, and then select \uicontrol C or
+ \uicontrol C++ to add a C or C++ compiler.
+
+ To clone the selected compiler, select \uicontrol Clone.
+
+ \li In the \uicontrol Name field, enter a name for the compiler to
+ identify it in \QC.
+
+ \li In the \uicontrol {Compiler path} field, enter the path to the
+ directory where the compiler is located.
+
+ \li In the \uicontrol {Platform codegen flags} field, check the flags passed
+ to the compiler that specify the architecture on the target
+ platform.
+
+ \li In the \uicontrol {Platform linker flags} field, check the flags passed to
+ the linker that specify the architecture on the target platform.
+ The linker flags are used only when building with Qbs.
+
+ The other settings to specify depend on the compiler.
+
+ \li In the \uicontrol ABI field, provide an identification for the
+ target architecture. This is used to warn about ABI mismatches
+ within the kits.
+
+ \endlist
+
+ \section1 Adding Nim Compilers
+
+ To build an application using the Nim Compiler, select \uicontrol Tools >
+ \uicontrol Options > \uicontrol Kits > \uicontrol Compilers >
+ \uicontrol Add > \uicontrol Nim, and specify the path to the directory where
+ the compiler is located.
+
+ \section1 Adding Custom Compilers
+
+ To add a compiler that is not listed above or a remote compiler, use the
+ \uicontrol Custom option and specify the paths to the directories where the
+ compiler and make tool are located and options for the compiler.
+
+ \image creator-compilers-custom.png
+
+ To add other compilers:
+
+ \list 1
+
+ \li Select \uicontrol Tools > \uicontrol Options > \uicontrol Kits >
+ \uicontrol Compilers > \uicontrol Add > \uicontrol Custom >
+ \uicontrol C or \uicontrol C++.
+
+ \li In the \uicontrol Name field, enter a name for the compiler.
+
+ \li In the \uicontrol {Compiler path} field, enter the path to the directory
+ where the compiler is located.
+
+ \li In the \uicontrol {Make path} field, enter the path to the directory where
+ the make tool is located.
+
+ \li In the \uicontrol ABI field, specify the ABI version.
+
+ \li In the \uicontrol {Predefined macros} field, specify the macros that the
+ compiler enables by default. Specify each macro on a separate line,
+ in the following format: MACRO[=value].
+
+ \li In the \uicontrol {Header paths} field, specify the paths to directories
+ that the compiler checks for headers. Specify each path on a
+ separate line.
+
+ \li In the \uicontrol {C++11 flags} field, specify the flags that turn on
+ C++11 support in the compiler.
+
+ \li In the \uicontrol {Qt mkspecs} field, specify the path to the directory
+ where mkspecs are located. Usually, the path is specified relative
+ to the Qt mkspecs directory.
+
+ \li In the \uicontrol {Error parser} field, select the error parser to use.
+ Select \uicontrol Custom, and then select \uicontrol {Customer Parser Settings}
+ to specify settings for a custom parser:
+
+ \image qtcreator-custom-parser.png
+
+ The custom error parser enables you to capture errors and warnings separately.
+ You can configure the error parser in the \uicontrol Error tab and the warning
+ parser in the \uicontrol Warning tab:
+
+ \list 1
+
+ \li In the \uicontrol {Error message capture pattern} field, specify
+ a regular expression to define what is an error. The custom
+ parser matches the compile output line by line against the
+ regular expression and displays errors in the \uicontrol Issues
+ output pane. Create regular expression groups that contain
+ the file name, line number and error message.
+
+ \li In the \uicontrol {Capture Positions} field, map the regular
+ expression groups to \uicontrol {File name}, \uicontrol {Line number},
+ and \uicontrol Message.
+
+ \li In the \uicontrol {Capture Output Channels} field, specify whether
+ messages from standard output, standard error, or both channels
+ should be captured.
+
+ \li In the \uicontrol {Test} group, you can test how the message that
+ you enter in the \uicontrol {Error message} field is matched when
+ using the current settings.
+
+ \endlist
+
+ \endlist
+
+ \section1 Troubleshooting MinGW Compilation Errors
+
+ If error messages displayed in the \uicontrol {Compile Output} pane contain
+ paths where slashes are missing (for example, \c {C:QtSDK}),
+ check your PATH variable. At the command line, enter the following commands:
+
+ \code
+ where sh.exe
+ where make.exe
+ where mingw32-make.exe
+ \endcode
+
+ If these commands show paths, they have been added to the global PATH
+ variable during the installation of a tool chain based on Cygwin or MinGW,
+ even though this is against Windows conventions.
+
+ To keep working with the third-party tool chain, create a new shell link
+ that adds the required paths (as Visual Studio and Qt do). The shell link
+ must point to cmd.exe, as illustrated by the following example:
+
+ \c {C:\Windows\System32\cmd.exe /K C:\path_to\myenv.bat}
+
+ where the /K parameter carries out the command specified in the bat file.
+
+ Create the myenv.bat file at \e path_to, which should be in a convenient
+ location. In the file, specify the paths to the tool chains. For example,
+
+ \c {set PATH=C:\path1;C:\path2;%PATH%}
+
+ where \e path1 and \e path2 are paths to the tool chains.
+
+ Finally, remove the paths from the global PATH, reboot the computer, and
+ run the \c where commands again to verify that the global PATH is now clean.
+
+ You can use the shell link to run the tools in the third-party tool chains.
+
+*/