快乐虾
http://blog.csdn.net/lights_joy/
下面给出从VC的工程配置到gcc参数的对应关系:
1.1常规选项卡
Vs2012
Gcc
$(OutDir)
输出目录
目标文件的生成路径
$(IntDir)
中间目录
Obj文件的存放路径,和VS一样,所有OBJ文件都放在同一个目录下,因此在项目中不可以存在同名文件,即使这两个文件不在同一个目录也不行。
$(TargetName)
目标文件名
输出的目标文件名
目标文件扩展名
根据项目类型使用.so或者.a
$( ExtensionsToDeleteOnClean)
清除时要删除的扩展名
清除时要删除的扩展名,清除时可以据此删除文件
$( ConfigurationType)
配置类型
DynamicLibrary:生成动态库,.so
Application:生成应用程序
StaticLibrary:静态库,.a
1.2C/C++编译选项卡
下面是vs2012中的编译属性列表:
1> ProcessFile:..\..\app\defaults\defaults_dvs.c
1> Name = RuntimeLibrary && Value =MultiThreadedDebugDll
1> Name = BasicRuntimeChecks && Value =EnableFastChecks
1> Name = Optimization && Value =Disabled
1> Name = MinimalRebuild && Value = true
1> Name = AssemblerOutput && Value =NoListing
1> Name = AssemblerListingLocation &&Value = obj\
1> Name = AcceptableNonZeroExitCodes &&Value =
1> Name = UndefineAllPreprocessorDefinitions&& Value = false
1> Name = BrowseInformation && Value =false
1> Name = BrowseInformationFile && Value= obj\
1> Name = CompileAs && Value = Default
1> Name = DisableLanguageExtensions &&Value = false
1> Name = ErrorReporting && Value =Prompt
1> Name = ExpandAttributedSource &&Value = false
1> Name = ExceptionHandling && Value =Sync
1> Name = EnableFiberSafeOptimizations&& Value = false
1> Name = EnableEnhancedInstructionSet&& Value = NotSet
1> Name = FloatingPointModel && Value =Precise
1> Name = ForceConformanceInForLoopScope&& Value = true
1> Name = ForcedIncludeFiles && Value =F:\projects\src\nvs_dev\src\ipc\vs_app\defaults\\prefix.h
1> Name = ForcedUsingFiles && Value =
1> Name = GenerateXMLDocumentationFiles&& Value = false
1> Name = InlineFunctionExpansion &&Value = Default
1> Name = IntrinsicFunctions && Value =false
1>Name = IgnoreStandardIncludePath&& Value = false
1> Name = OmitDefaultLibName && Value =false
1> Name = FavorSizeOrSpeed && Value =Neither
1> Name = WholeProgramOptimization &&Value = false
1> Name = ObjectFileName && Value = obj\
1> Name = CallingConvention && Value =Cdecl
1> Name = ProgramDataBaseFileName &&Value = obj\vc110.pdb
1> Name = PrecompiledHeader && Value =NotUsing
1> Name = PrecompiledHeaderFile && Value= stdafx.h
1> Name = PrecompiledHeaderOutputFile &&Value = obj\defaults.pch
1> Name = PreprocessToFile && Value =false
1> Name = PreprocessKeepComments &&Value = false
1> Name = PreprocessSuppressLineNumbers&& Value = false
1> Name = ShowIncludes && Value = false
1> Name = SuppressStartupBanner && Value= true
1> Name = BufferSecurityCheck && Value =true
1> Name = StructMemberAlignment && Value= Default
1> Name = SmallerTypeCheck && Value =false
1> Name = TrackerLogDirectory && Value =obj\
1> Name = MinimalRebuildFromTracking &&Value = true
1> Name = TreatWarningAsError && Value =false
1> Name = TreatWChar_tAsBuiltInType &&Value = true
1> Name = UseFullPaths && Value = false
1> Name = WarningLevel && Value = Level3
1> Name = XMLDocumentationFileName &&Value = obj\
1> Name = DebugInformationFormat &&Value = ProgramDatabase
1> Name = PreprocessorDefinitions &&Value = DVS=1;_WINDLL;_MBCS;
1> Name = EnablePREfast && Value = false
1> Name = OmitFramePointers && Value =false
1> Name = AdditionalIncludeDirectories&& Value = ..\..\app\rc;..\..\..\;
1> Name = LinkCompiled && Value = true
1> Name = LibCompiled && Value =
1> Name = ImpLibCompiled && Value =
1> Name = FullPath && Value =F:\projects\src\nvs_dev\src\ipc\app\defaults\defaults_dvs.c
1> Name = RootDir && Value = F:\
1> Name = Filename && Value =defaults_dvs
1> Name = Extension && Value = .c
1> Name = Directory && Value =projects\src\nvs_dev\src\ipc\app\defaults\
1> Name = RecursiveDir && Value =
1> Name = Identity && Value =..\..\app\defaults\defaults_dvs.c
1> Name = ModifiedTime && Value =2014-08-28 13:05:23.8379195
1> Name = CreatedTime && Value =2014-11-14 17:01:34.6390909
1> Name = AccessedTime && Value =2014-11-14 17:01:34.6390909
Vs2012
Gcc
$( AdditionalIncludeDirectories)
附加包含目录
每一个路径对应 -I 参数
$( PreprocessorDefinitions)
宏定义
每一个定义对应一个 -D 参数
$( ExcludedFromBuild)
从生成中排除
如果值为true,则不参与生成。
$( RelativeDir)
源文件相对于项目文件的路径
使用此路径
$( Filename)
不带扩展名的文件名
沿用
$( Identity)
使用相对路径的文件名
沿用
$(WarningLevel)
警告等级
TurnOffAllWarnings:对应于-w,关闭所有警告
Level1:未用,相当于未设置
Level2:未用,相当于未设置
Level3:未用,相当于未设置
Level4:未用,相当于未设置
EnableAllWarnings:对应于-wall,启用所有警告(部分编译器不识别)
$( TreatWarningAsError)
将警告视为错误
True:对应于-werror(部分交叉编译器不识别)
False:不使用-werror
$( Optimization)
优化
Disabled:对应于-O0
MinSpace:使大小最小化,对应于-Os
MaxSpeed:速度最大化,对应于-O2
Full:完全优化,对应于-O3
$( AdditionalOptions)
命令行
附加的编译参数,将原样写入gcc的命令行中。
$( DebugInformationFormat)
None:不写入-g
其它值:加上-g3
1.3链接选项
下面是vs2012中的链接项属性列表:
1>name = AllowIsolation and value = true
1>name = SuppressStartupBanner and value = true
1>name = TrackerLogDirectory and value = hi3516\Debug\
1>name = MinimalRebuildFromTracking and value = true
1>name = ImportLibrary and value =F:\projects\src\nvs_dev\src\ipc\vs_app\hi3516\Debug\defaults.lib
1>name = OutputFile and value = F:\projects\src\nvs_dev\src\ipc\vs_app\hi3516\Debug\defaults.dll
1>name = ManifestFile and value =hi3516\Debug\defaults.dll.intermediate.manifest
1>name = ProgramDatabaseFile and value =F:\projects\src\nvs_dev\src\ipc\vs_app\hi3516\Debug\defaults.pdb
1>name = Profile and value = false
1>name = ProfileGuidedDatabase and value =F:\projects\src\nvs_dev\src\ipc\vs_app\hi3516\Debug\defaults.pgd
1>name = EnableUAC and value = true
1>name = UACExecutionLevel and value = AsInvoker
1>name = UACUIAccess and value = false
1>name = LinkErrorReporting and value = PromptImmediately
1>name = AcceptableNonZeroExitCodes and value =
1>name = RandomizedBaseAddress and value = true
1>name = DataExecutionPrevention and value = true
1>name = CLRImageType and value = Default
1>name = KeyFile and value =
1>name = DelaySign and value =
1>name = Driver and value = NotSet
1>name = RegisterOutput and value = false
1>name = PerUserRedirection and value = false
1>name = TurnOffAssemblyGeneration and value = false
1>name = GenerateMapFile and value = false
1>name = MapExports and value = false
1>name = SwapRunFromCD and value = false
1>name = SwapRunFromNET and value = false
1>name = IgnoreEmbeddedIDL and value = false
1>name = TypeLibraryResourceID and value = 1
1>name = NoEntryPoint and value = false
1>name = SetChecksum and value = false
1>name = ShowProgress and value = NotSet
1>name = AdditionalDependencies and value =pthread;kernel32.lib;user32.lib;kernel32.lib;user32.lib;
1>name = LinkDLL and value = true
1>name = TargetMachine and value = MachineARM
1>name = GenerateDebugInformation and value = true
1>name = FullPath and value =F:\projects\src\nvs_dev\src\ipc\vs_app\defaults\hi3516\Debug\defaults.obj
1>name = RootDir and value = F:\
1>name = Filename and value = defaults
1>name = Extension and value = .obj
1>name = RelativeDir and value = hi3516\Debug\
1>name = Directory and value =projects\src\nvs_dev\src\ipc\vs_app\defaults\hi3516\Debug\
1>name = RecursiveDir and value =
1>name = Identity and value = hi3516\Debug\defaults.obj
1>name = ModifiedTime and value =
1>name = CreatedTime and value =
1> name = AccessedTimeand value =
Vs2012
Gcc
$(AdditionalDependencies)
附加库
以;号做为分隔,每一项直接加上-l传递给链接器
$(AdditionalLibraryDirectories)
附加库目录,可以使用VS的宏,自动转换为Linux路径
$( AdditionalOptions)
附加选项,原样传递给gcc做链接参数
与其用泪水悔恨今天,不如用汗水拼搏今天。