C ++ Primer: instrucciones de uso del compilador fuente


1. Antecedentes

  Hace poco leí "C ++ imprimación versión china (5ª edición)," el primer capítulo, fuente escrita después de la fuente quiso comparar el ejemplo oficial, se encontró que la documentación está en Inglés, el registro oficial después de más o menos entender lo que es la forma de compilar y ejecutarlo fuente.

2. información relevante y el medio ambiente

C ++ imprimación oficial para descarga Fuente:
http://www.informit.com/store/c-plus-plus-primer-9780321714114
C++ primer

Descargar MS Visual Studio 2012

Descargar versión explicación
4.7.0 GCC Se aplica a la versión de gcc 4.7.0 y superiores
MS Visual Studio 2012 Adecuado para VS2012 y versiones anteriores
GCC pre-compiladores de C ++ 11 2012 Lo siguiente se aplica a la versión VS2012
Microsoft pre-compiladores de C ++ 11 Lo siguiente se aplica a la versión de gcc 4.7.0

Debido a que el VS2017 equipo, por lo que se puede descargar directamente MS Visual Studio 2012. La siguiente compilar y ejecutar en el entorno de ejecución VS.

MS Visual Studio 2012 Directorio

MS Visual Studio 2012 Archivo Directorio Descripción:

  1. Carpeta 1 a carpeta 19 fuente en nombre de C ++ capítulos primer19.
  2. se requiere fuente Version_test.h parte de cabecera, tal como una carpeta en Sales_data.h 1 de referencia Version_test.h.
  3. CompilerNotes.pdf y Visual Studio 2012 README.pdf documentación general.
  4. runpgms.bat 1 traverse a la carpeta de la carpeta 19, runp.bat para saltar a la carpeta interna, realizado runpgms.bat interior.
  5. makefile nmake y MS_makefile_template es el archivo ejecutable por defecto, compilado por todo el directorio del código fuente, y generar el archivo .exe correspondiente.

Sección 1 del directorio de la carpeta

Capítulo 1 carpeta de directorio Descripción:

  1. cpp carpeta de datos de entrada de la sección de almacenamiento realiza datos requeridos.
  2. El primer capítulo es toda fuente de archivo .cpp.
  3. Sales_item.h forma parte del archivo de CPP para realizar los archivos de cabecera necesarios.
  4. runpgms.bat para realizar .exe archivo, los datos automáticamente en la carpeta de importación de datos, y muestra el resultado. Si esta carpeta sin un archivo .exe correspondiente, runpgms.bat falla.
  5. sección de documentación LEEME.txt
  6. nmake makefile es el archivo ejecutable por defecto, compilado por todo el código fuente en este directorio, y generar el archivo .exe correspondiente.

De este modo toda la carpeta con nmake makefile se ejecuta, por lo que necesita para crear compile.bat VS para llamar a la vsvars32.bat nmake para construir el entorno operativo. Al hacer doble clic compile.bat, el sistema abre CMD, todos los comandos de compilación se ejecutan en él.
Código compile.bat:

@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.bat"
cmd

Consejo: Usar dirección vsvars32.bat a ser modificado, vsvars32.bat Como se usa en el presente documento, la siguiente dirección:

dirección vsvars32.bat

3. compilar y ejecutar

3.1 compilar y ejecutar una sola fila

  La copia y pega compile.bat al directorio en el archivo, haga doble clic para ejecutar compile.bat, la ventana emergente, introduzca comando cmd compilación. mandato de compilación de la siguiente manera, donde / EHsc empezar de excepción, / nologo prohibida reclamaciones.

// add.cpp编译成add.obj
cl /EHsc /nologo /c add.cpp
// add.obj编译成add.exe
cl /EHsc /nologo add.obj
// 一步到位,add.cpp编译成add.exe
cl /EHsc /nologo add.cpp

la compilación de varias etapas:
compilación de varios pasos
en una sola etapa de compilación:
paso de compilación
compilar los resultados:
resultados de compilación

3.2 redirección de archivos

  Puede ejecutar .exe, sin tener que entrar a través de la redirección de archivo, carpeta de datos directamente en el archivo como entrada, y emite el resultado del cálculo.

de datos de datos / add_item:

0-201-78345-X 3 20.00
0-201-78345-X 2 25.00

mandato de compilación:

// add_item.cpp编译成add_item.exe
cl /EHsc /nologo add_item.cpp
// 自动导入data/add_item计算结果
add_item.exe <data/add_item

Compilar los resultados:
Los resultados operativos

Nota: Si los siguientes errores de compilación, la razón citada es add_item.cpp # include "Sales_item.h", mientras que Sales_item.h y referencias #include "Version_test.h". Por lo tanto, es necesario añadir "I ... /" comando de compilación, es una referencia al directorio padre, que es el directorio principal. directorio principal Version_test.h también se puede copiar en el catálogo.

error de compilación

El comando compilador de modificación:

cl /EHsc /nologo /I.. add_item.cpp

Compilar los resultados:
directorio de archivos

  Cuando una carpeta correspondiente a todo .cpp están presentes .exe, una pluralidad de resultados de cálculo .exe archivos puede redirigir todas salida runpgms.bat. Si cmd destellaron, necesidad runpgms.bat última línea con la "pausa" para hacer una pausa.
runpgms.bat

runpgms.bat antes de la modificación:

echo on
add < data/add 
add_item < data/add_item
add_item2 < data/add_item
avg_price < data/book_sales
item_io < data/book_sales 
occurs < data/occurs
mysum < data/mysum

for %%i in ( for_ex forcount main_only whilecount) do %%i

runpgms.bat modificado:

echo on
add < data/add 
add_item < data/add_item
add_item2 < data/add_item
avg_price < data/book_sales
item_io < data/book_sales 
occurs < data/occurs
mysum < data/mysum

for %%i in ( for_ex forcount main_only whilecount) do %%i
pause

Los resultados operativos

Más de 3,3 compilar y ejecutar el archivo

  Si un archivo que compilar y ejecutar un archivo demasiado problema, puede utilizar makefile plazo compile.bat, compilar todo el código fuente para lograr los tres comandos siguientes, la liquidación de .obj y .exe.

// 编译目录下所有源码
nmake
// 删除文件夹下所有.obj
nmake clean
// 删除文件夹下所有.obj和.exe
namke clobber

nmake

resultados de la ejecución de NMAKE

nmake limpia

nmake resultados de la ejecución limpias

clobber namke

namke clobber los resultados

Nota: Cuando se compila y ejecuta inits.cpp en la carpeta de la sección 2, habrá "C2732 de error: Enlace especificación y" error lround "especificación temprana de conflictos", que Version_test.h necesidad de la "#ifndef LROUND" modificado para "LROUND #ifdef".

directorio inits.cpp

image.png

Antes de la modificación:

#ifndef LROUND
inline long lround(double d)
{
    return (d >= 0) ? long(d + 0.5) : long(d - 0.5);
}
#endif

modificado:

// #ifndef LROUND
#ifdef LROUND
inline long lround(double d)
{
    return (d >= 0) ? long(d + 0.5) : long(d - 0.5);
}
#endif

4. Resumen

  1. Compilador medio ambiente no es importante, el uso gcc, g ++ o lata cl, es importante escribir el código y el proceso de compilación.
  2. Aprender a redirección de archivos y el uso makefile, y hacer que la programación sea más eficiente.

5. Referencias

  1. [Consejos] 08/08/2018 sobre C ++ sección de imprimación 1.6 archivos de cabecera Sales_item.h problemas y soluciones (libre) en la edición de la comunidad relacionados VS2015
  2. Ejecutar NMAKE
Publicado 77 artículos originales · ganado elogios 25 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_34801642/article/details/103827224
Recomendado
Clasificación