CMake 在Win7下编译 HDF4 遇到 Fortran编译器无法通过测试

想在Windows 7下编译 HDF4。


编译环境:

CMake  2.8.12.2

Visual Studio 2010

Intel Visual Fortran XE 2013


在 Intel Visual Fortan 命令行工具中运行 VS2010的命令行脚本。然后运行:

ctest -S HDF4WindowsCMake.cmake,hdf-4.2.10 -C Debug -VV -O hdf4.log


当 ctest 执行 Fortran 编译器测试时,遇到错误而终止运行。错误信息为:

LINK : fatal error LNK1181: 无法打开输入文件“user32.lib”


但是查看环境变量,在 LIB 中包含了

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib.

而且打开 VS2010 的IDE,可以顺利编译Fortran 程序。

从以上信息看,难以解释上述链接错误。


即使在一个新的Win7系统下,安装完 VS2010+IVF2013后,进行测试,错误依旧。


经过多方查找,发现,在

C:\Program Files (x86)\CMake 2.8\share\cmake-2.8\Modules\Platform\Windows-Intel-Fortran.cmake

末尾添加以下几行可以解决问题:


if(MSVC_C_ARCHITECTURE_ID MATCHES 64 OR MSVC_CXX_ARCHITECTURE_ID MATCHES 64)
  set(CMAKE_CL_64 1)
else()
  set(CMAKE_CL_64 0)
endif()
if(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64)
  set(CMAKE_CL_64 1)
endif()


if(CMAKE_CL_64)
  LINK_DIRECTORIES("C:/Program\ Files\ (x86)/Microsoft\ SDKs/Windows/v7.0A/Lib/x64/")
else()
  LINK_DIRECTORIES("C:/Program\ Files\ (x86)/Microsoft\ SDKs/Windows/v7.0A/Lib/")
endif() 


似乎这是 cmake 的Bug. 











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值