快乐虾
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.2 C/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做链接参数 |