qmake Platform NotesMany cross-platform projects can be handled by the qmake's basic configuration features. On some platforms, it is sometimes useful, or even necessary, to take advantage of platform-specific features. qmake knows about many of these features, and these can be accessed via specific variables that only have an effect on the platforms where they are relevant.
Mac OS XFeatures specific to this platform include support for creating universal binaries, frameworks and bundles. Source and Binary PackagesThe version of qmake supplied in source packages is configured slightly differently to that supplied in binary packages in that it uses a different feature specification. Where the source package typically uses the macx-g++ specification, the binary package is typically configured to use the macx-xcode specification. Users of each package can override this configuration by invoking qmake with the -spec option (see Running qmake for more information). This makes it possible, for example, to use qmake from a binary package to create a Makefile in a project directory with the following command line invocation: qmake -spec macx-g++ Using Frameworksqmake is able to automatically generate build rules for linking against frameworks in the standard framework directory on Mac OS X, located at /Library/Frameworks/. Directories other than the standard framework directory need to be specified to the build system, and this is achieved by appending linker options to the QMAKE_LFLAGS variable, as shown in the following example: QMAKE_LFLAGS += -L/path/to/framework/directory/ The framework itself is linked in by appending the -framework options and the name of the framework to the LIBS variable: LIBS += -framework TheFramework Creating Library BundlesAny given library project can be configured so that the resulting library file is placed in a library bundle, ready for deployment. To do this, set up the project to use the lib template and add the lib_bundle option to the CONFIG variable: TEMPLATE = lib CONFIG += lib_bundle The data associated with the library is specified using the QMAKE_BUNDLE_DATA variable. This holds items that will be installed with a library bundle, and is often used to specify a collection of header files, as in the following example: FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS Here, the FRAMEWORK_HEADERS variable is a user-defined variable that is used to define the headers required to use a particular framework. Appending it to the QMAKE_BUNDLE_DATA variable ensures that the information about these headers are added to the collection of resources that will be installed with the library bundle. See Deploying an Application on Qt/Mac for more information about deploying applications and libraries. Creating FrameworksIn addition to libraries and library bundles, qmake can generate rules to build frameworks. To enable this, you need to configure the project to generate a library bundle as described in the previous section: TEMPLATE = lib CONFIG += lib_bundle The end product of the build process is a framework whose name and version are specified by the QMAKE_FRAMEWORK_BUNDLE_NAME and QMAKE_FRAMEWORK_VERSION variables. By default, the values used for these are obtained from the TARGET and VERSION variables. See Deploying an Application on Qt/Mac for more information about building and deploying frameworks. Creating Universal BinariesTo create a universal binary for your application, you need to be using a version of Qt that has been configured with the -universal option. The architectures to be supported in the binary are specified with the CONFIG variable. For example, the following assignment causes qmake to generate build rules to create a universal binary for both PowerPC and x86 architectures: CONFIG += x86 ppc Additionally, developers using a PowerPC-based platform need to set the QMAKE_MAC_SDK variable. This process is discussed in more detail in the deployment guide for Mac OS X. Creating and Moving Xcode ProjectsDevelopers on Mac OS X can take advantage of qmake's support for Xcode project files, as described in Qt/Mac is Mac OS X Native, by running qmake to generate an Xcode project from an existing qmake project files. For example: qmake -spec macx-xcode project.pro Note that, if a project is later moved on the disk, qmake must be run again to process the project file and create a new Xcode project file. WindowsFeatures specific to this platform include support for creating Visual Studio project files and handling manifest files when deploying Qt applications developed using Visual Studio 2005. Creating Visual Studio Project FilesDevelopers using Visual Studio to write Qt applications can use the Visual Studio integration facilities provided with the Qt Commercial Editions and do not need to worry about how project dependencies are managed. However, some developers may need to import an existing qmake project into Visual Studio. qmake is able to take a project file and create a Visual Studio project that contains all the necessary information required by their development environment. This is achieved by setting the qmake project template to either vcapp (for application projects) or vclib (for library projects). This can also be set using a command line option; for example: qmake -t vcapp Each time you update the project file, you need to run qmake to generate an updated Visual Studio project. Visual Studio 2005 Manifest FilesWhen deploying Qt applications built using Visual Studio 2005, it is necessary to ensure that the manifest file, created when the application was linked, is handled correctly. This is handled automatically for projects that generate DLLs, but it is necessary to explicitly enable manifest embedding for application executables with the following assignment to the CONFIG variable: CONFIG += embed_manifest_exe This is discussed in more detail in the deployment guide for Windows. [Previous: Running qmake] [Contents] [Next: qmake Advanced Usage] |
Publicité
Best OfActualités les plus luesSemaine
Mois
Année
Le Qt Labs au hasardConstruire l'avenir : (ré-)introduction aux composants de Qt QuickLes Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. Lire l'article.
CommunautéRessources
Liens utilesContact
Qt dans le magazine |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.3 | |
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |
Copyright © 2000-2012 - www.developpez.com