当前位置:网站首页>_ HUGE and __ IMP__ HUGE in “math.h“
_ HUGE and __ IMP__ HUGE in “math.h“
2022-07-28 10:52:00 【vv1025】
I have a question about how constants defined in math.h are linked.
In visual studio 2010, I'm building a 64-bit dll c++ library with "MD" that uses a third party library that make use of "HUGE_VAL". From the header "math.h", it seems that "HUGE_VAL" is defined as "_HUGE". When I try to build, a linking error results
error LNK2001: unresolved external symbol _HUGE
After doing some googling, I think _HUGE should be defined in msvcrt.lib. MSVCRT.lib is linked, but I didn't link libcmt.lib because it would cause re-definition errors.
What strikes me as odd is that when I create a simple console program that uses HUGE_VAL and use /verbose as a linker option, it shows _IMP_HUGE being linked.
What I'm really curious of is at what stage does _HUGE turn into _IMP_HUGE? Also, have anyone else gotten the unresolved _HUGE error and does anyone have any ideas for how it could be fixed?
Thanks for reading the long question and for any ideas.I have experienced this issue with VC11.0. The only error I get is an unresolved symbol _HUGE error.
I am linking with dynamic multi-threaded run time libraries and I found that if I were to include "libcmt.lib" in my link step, then the issue is resolved (or worked around).
I started looking into how the headers were defined in the SDK for clues and found that I was missing a compiler pre-directory in my compile steps: _DLL.
When you build with dynamic run time libraries the _HUGE variable needs to be __declspec(dllimport) so it can be found. When you include "math.h" -> "crtdefs.h" without setting _DLL as a pre-directive, the variable will not be __declspec(dllimport)'ed and will appear missing at link time.
I was getting this issue because I am compiling with my own custom makefiles and I had neglected to add the _DLL pre-directive. Adding -D_DLL to my compilation step resolved the compile issue with no other changes needed.
I know this thread is old, but figured I would throw it out there as it may help someone with a similar issue.
Share
Improve this answer
Follow
answered Aug 22 '13 at 0:41LIBCD.lib
LIBC.lib
LIBCMT.lib边栏推荐
猜你喜欢

Attention attention mechanism flow chart

Excel word 简单 技巧 整理(持续更新 大概~)

11_ UE4 advanced_ Change male characters to female characters and modify the animation

产品端数据分析思维

SDUT Round 9 2020 Spring Festival campaign

Redis-day01 common sense supplement and redis introduction

爱可可AI前沿推介(7.28)

SemEval 2022 | 将知识引入NER系统,阿里达摩院获最佳论文奖

3. MapReduce explanation and source code analysis

PyQt5快速开发与实战 4.12 日历与时间
随机推荐
从零开始Blazor Server(2)--整合数据库
剑指 Offer 09. 用两个栈实现队列
GKRidgedNoiseSource
机器人技术(RoboCup 2D)实验五十题及主要函数含义
GKPerlinNoiseSource
数组相关的知识点
287. Find the Duplicate Number
Tree Shaking和DCE
GKNoiseSource
C language input string with spaces
Select without the order by clause, the order of the returned results is not reliable
andorid 开发
nodejs:搭建express 服务,设置session以及实现退出操作
GKCircleObstacle
Network file system service (NFS)
Batch Normlization
Samba server configuration
FHWY工作日进度表
GKRandomSource
5. Implement MapReduce program on window side to complete wordcount function