Vs2012在Linux开发中的应用(10): 参数转换

快乐虾

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做链接参数

与其用泪水悔恨今天,不如用汗水拼搏今天。

Vs2012在Linux开发中的应用(10): 参数转换

相关文章:

你感兴趣的文章:

标签云: