A. 如何在VS2010环境下编译C++程序
用 Visual Studio 编写 Visual C++ 程序的第一步是选择项目的类型。对于每种项目类型,Visual Studio 都为您设置编译器设置并生成起始代码。
创建新项目
在“文件”菜单中,指向“新建”,然后单击“项目...”。
在“项目类型”区域中,单击“Win32”。然后,在“Visual Studio 已安装的模板”窗格中,单击“Win32 控制台应用程序”。
键入项目名称。
创建新项目时,Visual Studio 将该项目放入一个解决方案。请接受解决方案的默认名称,该名称与项目的名称相同。
您可以接受默认位置、键入一个不同的位置或者浏览到要保存项目的目录。
按“确定”启动“Win32 应用程序向导”。
在“Win32 应用程序向导”对话框的“概述”页中,单击“下一步”。
在“应用程序类型”下的“应用程序设置”页,选择“控制台应用程序”。选择“其他选项”下的“空项目”设置并单击“完成”。
现在,您得到了一个没有源代码文件的项目。
这一章将帮助大家解释一些常见的错误、警告和问题,帮助大家去理解和解决一些常见问题,并了解它的根本原因。
iostream.h与<iostream>
下面的代码为什么在VC2010下面编译不过去?
#include <iostream.h>
int main()
{
cout<<"Hello World."<<endl;
return 0;
}
错误信息:fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory
造成这个错误的原因在于历史原因,在过去C++98标准尚未订立的时候,C++的标准输入输出流确实是定义在这个文件里面的,这是C风格的定义方法,随着C++98标准的确定,iostream.h已经被取消,至少在VC2010下面是这样的,取而代之的是我们要用<iostream>头文件来代替,你甚至可以认为<iostream>是这样定义的:
namespace std
{
#include "iostream.h"
}
因此我们可以简单的修改我们的Hello World。
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World."<<endl;
return 0;
}
iostream.h是属于C++的头文件,而非C的,因此标准订立的时候被改成了<iostream>。而C的头文件stdio.h等依然可以继续使用,这是为了兼容C代码。但是它们依然有对应的C++版本,如<cstdio> <cstdlib>等。记住,在VC2010上面采用C++风格的头文件而不是C风格的头文件,除非你是在用C。
B. 在linux环境下怎么写代码 ,编译
Linux输入命令行 vim test.c 会打开test.c文件,按 i 进入编辑模式,就可以开始写代码了。
写好后按 ESC 退出编辑模式,输入 :wq 保存并退出。
注:有些linux发行版上没有默认安装vim,要先安装。vim是vi编辑器的增强版(vi是默认都带的,也可以用 vi test.c)。
编译,命令行输入
gcc -Wall test.c -o test
说明:-Wall选项用于显示所有警告,-o test 指定输出的可执行文件名为test(默认不指定为a.out)
要用Windows下那种开发方式,就在Linux系统上装个Eclipse(加上 c/c++ 插件)。
C. 如何编译mapserver在windows环境下
编译mapserver的时候一定要选择一个根目录
推荐 C 盘
在C盘下面创建一个projects目录
将你的所以用来支持mapserver编译的支持库文件都放到该目录下面
注:由于mapserver等都是开源的软件。但是都有一定的版权。所以他们不是集成到mapserver下面的,而是有各种支持库文件通过编译说明文件链接
所有文件链接的说明文件在nmake.opt文件中。这是使用vc编译的说明文件。在编译的时候具体选择支持什么库文件都可以在这里说明。
下面是具体的编译环境
gdwin32 的bgd.lib是第一次编译后拷贝过来的运行makemsvcimport.bat
libpng 的libpng.lib,libpngd.lib是第一次编译后拷贝过来的vc6
freetype 的freetype2110_D.lib在vc7下面编译成功
zlib zlib.lib 编译成功在zlib123\contrib\vstudio\vc7用vc7
proj proj.lib 在vc7环境下编译成功
curl libcurl.lib 在vc6编译下成功 C:\projects\curl\lib
gdal gdal.lib 用submake.bat批处理文件执行编译成功
pdflib 用vc7编译成功 C:\projects\PDFlibLite
fcgi 没有成功 将fcgi_config_x86.h改为fcgi_config.h用vc6编译成功
jpeg 没有编译成功将gdal里的拷贝过来
regex 没有编译成功
编译支持库的时候比较艰难
仔细细心的查看各个支持库中的文档目录。一般都会有一个可以通过的编译。
编译的时候也要懂得使用技巧。比如他说找不到库文件或着什么头文件或源文件你都可以从其他地方拷贝一个过来。
附加nmake.opt文件的配置
#
# nmake.opt - MapServer 4.x configuration for MSVC++
#
# This VC++ configuration is used in building MAPSERVER.LIB, MAPSERV.EXE,
# and the other MapServer command-line programs.
#
# To use the makefile:
# - Open a DOS prompt window
# - Run the VCVARS32.BAT script to initialize the VC++ environment variables
# - Start the build with: nmake /f makefile.vc
#
# $Id: nmake.opt,v 1.24 2005/12/08 19:14:48 hobu Exp $
#
# Contents:
# Section I: Mapserver Options (you may want to edit)
# Section II: Support Libraries (you must edit)
# Section III: Debug Flags (no need to edit)
# Section IV: Variable Setup (should not need to edit)
# Section V: UMN GIS System Setup (should not need to edit)
# Section VI: Collect compiler flags
#
########################################################################
# Section I: Mapserver Options
########################################################################
# Uncomment the following to link mapserv.exe withh dll
DLLBUILD=1
# Set the following to point to the current directory.
MS_BASE = C:\projects\mapserver
# Optmization and related compile flags.
# Optimized, with using MSVCRT.
OPTFLAGS = /nologo /MD $(WARNING_LEVEL) $(DEBUG)
#LDFLAGS = /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG
# Debug with MSVCRT
#OPTFLAGS = /nologo /Zi /MD $(WARNING_LEVEL) $(DEBUG)
# Optimized, with LIBC.
#OPTFLAGS = /nologo $(WARNING_LEVEL) $(DEBUG)
# Input raster format options:
#
# The lite version of mapserver 4.x supports only GIF, PNG and JPEG data for
# input. If you wish to support many geospatial raster formats for input
# you will need the GDAL support library from http://www.gdal.org/.
# Once built, enable the GDAL flag, and point GDAL_DIR to the directory
# where GDAL was built.
#GDAL=-DUSE_GDAL
#GDAL_DIR=c:\projects\gdal
#
# Input vector format options
#
# The lite version of Mapserver 4.x only suports ESRI shapefiles for input.
#
# The OGR library (part of GDAL) supports a variety of geospatial vector
# formats including mapinfo, Arc/Info binary coverages, S-57, SDTS,
# Microstation DGN (pre-v7), TIGER, UK .NTF. It also include support for
# treating non-spatial tablular data from ODBC, CSV, mysql, Oracle Spatial,
# and PostgreSQL as spatial table with use of the VRT (virtual) driver.
#
# NOTE: Both -DUSE_OGR and -DUSE_GDAL need to be defined if you want to
# use GDAL/OGR for both raster and vector support, but GDAL_DIR needs only
# be defined once.
#
#OGR=-DUSE_OGR
#GDAL_DIR=c:\projects\gdal
# JPEG Input:
# JPEG input for raster layers is also available through GDAL, If you wish
# to build support for JPEG without GDAL, uncomment the following flag
# and provide the full path to the jpeg support library project directory.
# See http://www.ijg.org/ for support library.
JPEG=-DUSE_JPEG
JPEG_DIR=c:/projects/libjpeg
# Output format options:
# If you wish to allow JPEG output maps, uncomment the following flag.
# If not using a GD build with an internal of libjpeg, you will
# also need to uncomment JPEG_DIR and point to it; however, with BGD.DLL
# that is not necessary.
OUTPUT_JPEG=-DUSE_GD_JPEG
JPEG_DIR=c:/projects/libjpeg
# If you wish to allow PNG output maps, uncomment the following flag.
# If not using a GD build with an internal of libpng, you will
# also need to uncomment PNG_DIR and ZLIB_DIR and point to it; however, with
# BGD.DLL that is not necessary.
# See http://www.libpng.org/pub/png/libpng.html for support library.
# See http://www.gzip.org/zlib/ for support library.
OUTPUT_PNG=-DUSE_GD_PNG
PNG_DIR=c:/projects/libpng
ZLIB_DIR=c:/projects/zlib
#flag to indicate the use of zlib library. It is used intially in SVG
#output to compressed files.
ZLIB=-DUSE_ZLIB
# If you wish to allow Windows BMP output maps, uncomment the following flag.
OUTPUT_WBMP=-DUSE_GD_WBMP
# If you wish to have FLASH output, uncomment the following flag and provide
# the full path to the MING support library project directory.
# See http://ming.sourceforge.net/ for support library.
#MING=-DUSE_MING_FLASH
#MING_DIR=c:/projects/ming-0.3beta1
# If you wish to have PDF output, uncomment the following flag and provide the
# full path to the PDF support library project directory.
# See http://www.pdflib.com/ for support library.
PDF=-DUSE_PDF
PDF_DIR=c:/projects/PDFlibLite
# Annotation fonts.
#
# If you wish to annotate your maps with true type fonts unccomment the
# following flag. Provide the full path to the FreeType 2.x external
# support library, unless it is provided within your GD build as is the
# case with BGD.DLL.
# See http://www.freetype.org for support library.
ANNOTATION_FT=-DUSE_GD_FT
FT_DIR=c:/projects/freetype
# Direct connectivity to Postgresql PostGIS.
#
# To turn on direct connectivity to Postgresql PostGIS uncomment the following
# flag and set the full path name to the project directory for the
# Postgresql native Win32 client library.
# See http://www.postgresql.org for support library.
#POSTGIS =-DUSE_POSTGIS
#POSTGIS_DIR =c:/projects/libpq
#Orcale
ORACLE_DIR = c:\Oracle\Ora81
ORACLE=-DUSE_ORACLESPATIAL
# Direct connectivity to ArcSDE.
#
# To turn on direct connectivity to ArcSDE uncomment the following
# flag and set the full path name to the project directory for ArcSDE.
# Since ESRI includes the version number in the name of their libraries
# you may need to change that number in Section III of this configuration
# file.
# See http://www.esri.com/software/arcgis/arcinfo/arcsde/index.html for
# support library
#
#
#SDE_OPT=-DUSE_SDE -DWIN32
#SDE_DIR=c:/my_path_to/arcsde
# EPPL7 Support
#
# This activates ERDAS as well. It is included in the distribution.
# Probably the best raster alternative if
# you've got EPPL7 laying around. See http://www.lmic.state.mn.us/ for
# more information.
# Uncomment out the following flag and set the full path name to the
# epplib.obj file.
#EPPL=-DUSE_EPPL
#EPPL_OBJ=c:/my_path/epplib.obj
# If you want to ignore missing datafile errors uncomment the following
# line. This is especially useful with large tiled datasets that may not
# have complete data for each tile.
IGNORE_MISSING_DATA=-DIGNORE_MISSING_DATA
# If you want to use shape Z and M parameter this option must be set.
# It's OFF by default.
#USE_POINT_Z_M=-DUSE_POINT_Z_M
USE_POINT_Z_M=
#NEED_NONBLOCKING_STDERR=-DNEED_NONBLOCKING_STDERR
ENABLE_STDERR_DEBUG=-DENABLE_STDERR_DEBUG
# If you want antialiasing (note that It requires gd2)
USE_GD_ANTIALIAS=-DUSE_GD_ANTIALIAS
# Enable if you want thread safe locking, not needed for simple CGI.
#THREADS=-DUSE_THREAD
# Use this flag to compile with WMS Server support.
# To find out more about the OpenGIS Web Map Server Specification go to
# http://www.opengis.org/
WMS=-DUSE_WMS_SVR
# Use this flag to compile with WMS Client support. WMS Client support
# allows you to pull layers from other OGIS WMS servers on the interent and
# incorporate them into your map.
# To find out more about the OpenGIS Web Map Server Specification go to
# http://www.opengis.org/
# you need the libcurl library from http://curl.haxx.se/library/c/
# Set the full path to the curl project directory.
# You may also need to the full path to the windows socket library.
#WMSCLIENT= -DUSE_WMS_LYR
CURL_DIR=c:/projects/curl
#CURL_DIR=c:/projects/curl-7.10.7
WINSOCK_LIB = "WSOCK32.LIB"
WINSOCK_LIB = "C:\Program Files\Microsoft Visual Studio\VC98\Lib\WSOCK32.LIB"
# Use -DUSE_WFS_SVR to compile with WFS server support, requires OGR and PROJ4
#WFS=-DUSE_WFS_SVR
# Use -DUSE_WFS_LYR to compile with WFS client support, requires libcurl
#WFSCLIENT= -DUSE_WFS_LYR
# Use -DUSE_WCS_SVR to compile with WCS server support, requires GDAL.
#WCS=-DUSE_WCS_SVR
#libiconv support is used for to support double bytes (see bug 911).
#uncomment the following to build with libiconv support.
#ICONV=-DUSE_ICONV
#
# Reprojecting.
# If you would like mapserver to be able to reproject data from one
# geographic projection to another, uncomment the following flag
# Proj.4 distribution (cartographic projection routines). PROJ.4 is
# also required for all OGC services (WMS, WFS, and WCS).
#
# For PROJ_DIR use full path to Proj.4 distribution
PROJ=-DUSE_PROJ -DUSE_PROJ_API_H
PROJ_DIR=c:\projects\proj
# php Mapscript.
# If you plan to build PHP mapscript uncomment the following flag and
# set the full path to the PHP project directory
#PHP=1
#PHP_DIR=c:\projects\php-4.3.4
# Apparently these aren't as commonplace. Edit the
# following line to reflect the missing functions on your platform.
#
#STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRDUP
STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRLCAT
########################################################################
# Section II: External Support Libraries
########################################################################
# You will need to set the paths to various support library projects
# that you have compiled.
D. 什么是编译环境他的作用是什么编译环境跟运行平台有什么不同
编译环境是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。作用是通过代入预定义等程序段将源程序补充完整。
编译环境跟运行平台区别为:工具不同、调试不同、硬件支持不同。
一、工具不同
1、编译环境:编译环境包含开发、调试和部署等工具。
2、运行平台:运行平台只包含运行指令和class实现的工具。
二、调试不同
1、编译环境:编译环境有调试代码的功能,调试后可重新编译执行。
2、运行平台:运行平台没有调试代码的功能。
三、硬件支持不同
1、编译环境:编译环境使用的是模拟设备,不需要硬件支持。
2、运行平台:运行平台需要硬件支持,在实际设备中运行。
E. 在DOS环境下,编译java程序需要使用 命令,运行程序需要使用 命令。
第一:首先安装JDK。
第二:为了能使Java程序在dos下很方便的编译和运行Java程序,就要配置其运
行的环境变量,具体步骤如下:
(1)在安装的目录下找到你所安装的JDK文件,在里面找到java.exe文件,复制其路径。
(2)鼠标右击我的电脑,打开属性面板单击高级菜单、选择“环境变量”。
(3) 在弹出的面板中找到“系统环境变量”,在其窗口选中变量名为Path的变量。
Path是路径设置命令,其功能是:设备可执行文件的搜索路径,只对文件有效。当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据Path命令所设置的路径,顺序逐条地到目录中搜索该文件;Path命令中的路径,若有两条以上,各路径之间以一个分号“;”开。
(4)单击“编辑”,在弹出的窗口中的变量值的最后面粘贴上你刚才找到的路径,中间用分号隔开,单击确定。这样你就可以在DOS下很轻松的编译和运行Java程序.
如果Path路径中前面的路径有别的JDK版本,则在DOS下运行的是路径比较前面的版本。
第三:编译Java程序生成“.class”文件,在DOS下,应用DOS命令找到你所编Java程序文件(假设文件名为HelloWorld.java)的根目录下输入命令:javac
HelloWorld.java。如果生成。“.class”文件则编译成功。
第四:执行Java程序:接着上步操作输入:java HelloWorld;在命令提示符上会出现运行结果。
F. 如何在windows的命令行环境下编译C++程序
第一步:安装编译环境
下载并安装Visual Studio,本人安装的Visual Studio 2012
第二步:设置环境变量
1)右键“计算机(我的电脑)”,选择“属性->高级系统设置->环境变量”,找到“系统变量”中的“PATH"属性,双击之
2)复制Visual Studio安装目录下的路径“D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin”到环境变量中(PATH中已经有其它变量,则粘贴到最后面,并且用英文“;”与前面的变量隔开)
第三步:修改命令行启动参数
1)在“开始->运行”中输入“cmd”,开始菜单中将列出"cmd.exe",右键它,然后“发送到->发送到桌面快捷方式”
2)右键步骤1)中创建的桌面快捷方式,选择“属性->快捷方式”,找到“目标(T)”栏,修改目标为“C:\Windows\System32\cmd.exe /k vcvars32.bat”,修改好后点确定
第四步:编写test.cpp程序
1)在D盘新建一个文件夹,命名为testCode
2)打开testCode,在里面新建一个文本文档,命名为test.cpp(注意,如果你的系统设置中隐藏了已知文件类型的扩展名,必须显示它,否则你创建的test.cpp的真实名字将是test.cpp.txt)
3)用记事本或EditPlus打开test.cpp,在其中写入代码,例如:
#include <iostream>
int main()
{
std::cout<<"Hello World!"<<std::endl;
while(1)
{
//ignore
}
}
第五步:编译test.cpp
1)双击第三步中创建的cmd.exe的桌面快捷方式,打开命令行窗口
2)输入:cd d: 回车
3)输入:cd Ccodes 回车
4)输入:cl -EHsc test.cpp 回车
编译器开始编译test.cpp。我们可以从命令行的输出内容中看到编译结果。如果程序没有书写错误,一定可以编译出一个test.exe和一个test.obj。其中exe文件即是编译后的可执行程序。obj文件是按块编译产生的中间文件。至此,整个命令行编译流程结束。
G. 如何在linux环境下编辑一个c语言源程序并将其编译为可执行文件
打开安装好的Linux系统(ubuntu18.04)
1.安装编辑器
使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安装vim编辑器。(特别提示:在安装vim前最好将软件更新,使用指令sudo apt-get update.)之所以要加sudo的原因是这些安装和更新软件的时候需要使用管理员权限才可以进行。
2.安装gcc编译器
和安装vim类似使用sudo apt-get install gcc,安装完成后可以使用cc-v来查看编译器版本信息等。cc -v界面如下: