Command line 使用devenv将预处理器变量传递给英特尔Fortran编译器
我将VS2008与英特尔(R)Fortran编译器版本10.1.025一起使用 要构建我的解决方案,我将使用具有以下语法的批处理文件: 开发/重建“Release | Win32”c:…\solution.sln“/Project“ProjectName\u解决方案” 使用配置“Release | Win32”,我在VS ProjectProperties->Fortran->Proprocessor->Preprocessor Definitions中指定值“test” 在我的代码中,我正在测试“test”变量是否是define,它是否能够正确地工作 有人知道使用命令行更改fortran编译器的“预处理器定义”的方法吗?我还想添加值“commandLine”,以便在“预处理器定义”中添加“test;commandLine” 一些注意事项:Command line 使用devenv将预处理器变量传递给英特尔Fortran编译器,command-line,fortran,preprocessor,devenv,intel-fortran,Command Line,Fortran,Preprocessor,Devenv,Intel Fortran,我将VS2008与英特尔(R)Fortran编译器版本10.1.025一起使用 要构建我的解决方案,我将使用具有以下语法的批处理文件: 开发/重建“Release | Win32”c:…\solution.sln“/Project“ProjectName\u解决方案” 使用配置“Release | Win32”,我在VS ProjectProperties->Fortran->Proprocessor->Preprocessor Definitions中指定值“test” 在我的代码中,我正在测
1) I have to use the devenv.exe
2) I don't want to change neither the source code or the project file prior the compilation
3) I can use environment variable to pass option (if there is any way, I try the CL but didn't work)
提前谢谢
感谢您的回答,但也许我不完全理解您的解决方案,但我尝试了以下方法: 1) 我将“附加选项”(AO)更改为/Dtest,并且: 1.1)如果我从Visual Studio或命令行编译,则检查“!DEC$If DEFINED(test)”为true 2) 我将AO更改为“$(定义)”,并且: 2.1)我在Visual Studio中看到警告:“命令行警告#10161:无法识别的源类型“$(定义)”;对象文件假定为ifort”,并且检查“!DEC$IF DEFINED(test)”为false 2.2)我将定义变量添加到“用户环境变量”中,与2.1中的错误相同 3) 我将AO更改为“/D$(DEFINE)”,我在处理“@$(DEFINE)”fortcom时遇到了一个错误“语法错误,=”应为“ 4) 我将AO更改为“$(DEFINE)”并设置DEFINE=/test,但也不起作用,“!DEC$IF DEFINED(test)”为false @我想我需要更好地理解你的解决方案,如果你能给我一个关于你的解决方案的额外信息,我将不胜感激 我想做的是:
program main
integer:: ii
!DEC$ IF DEFINED (test)
ii = 72
!DEC$ ENDIF
!DEC$ IF DEFINED (test2)
ii = 80
!DEC$ ENDIF
print *, "this is up to column ", ii
end
现在,我想从命令行控制编译哪部分代码,执行如下操作:
1) from the command line: set define=test
2) devenv elephant.sln /build
3) run debug/elephant.exe -> get "72"
4) from the command line: set define=test2
5) devenv elephant.sln /build
6) run debug/elephant.exe -> get "80"
这是可能的吗?
提前感谢,,
rui试试这个
1) 创建以下F77程序
program main
integer:: ii
! ,-- column 73
ii = 72 +8
print *, "this is up to column ", ii
end
2) 为上述程序创建一个解决方案,比如大象.sln
如果您只是构建并运行,它应该显示“这是第72列”
3) 弹出项目属性,在Fortran/命令行下,在附加选项框中添加$(定义)
4) 保存并退出
5) set DEFINES=/extend\u源代码:72
6) devenv elephant.sln/build
7) 运行debug/elephant.exe-您应该得到72
8) set DEFINES=/extend\u源:80
9) devenv elephant.sln/build
10) 运行debug/elephant.exe-您应该得到80
11) 如果希望添加更多/D选项,请将其粘贴在DEFINES环境变量中
基本上不使用预处理器定义-只需将您的设置转储到defines环境变量中,它将被其他选项拾取。试试这个
1) 创建以下F77程序
program main
integer:: ii
! ,-- column 73
ii = 72 +8
print *, "this is up to column ", ii
end
2) 为上述程序创建一个解决方案,比如大象.sln
如果您只是构建并运行,它应该显示“这是第72列”
3) 弹出项目属性,在Fortran/命令行下,在附加选项框中添加$(定义)
4) 保存并退出
5) set DEFINES=/extend\u源代码:72
6) devenv elephant.sln/build
7) 运行debug/elephant.exe-您应该得到72
8) set DEFINES=/extend\u源:80
9) devenv elephant.sln/build
10) 运行debug/elephant.exe-您应该得到80
11) 如果希望添加更多/D选项,请将其粘贴在DEFINES环境变量中
基本上不使用预处理器定义-只需将您的设置转储到defines环境变量中,它将由其他选项拾取