当前位置:网站首页>_ 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边栏推荐
- ICML 2022 | 图表示学习的结构感知Transformer模型
- 287. Find the Duplicate Number
- 8. Detailed explanation of yarn system architecture and principle
- GKVoronoiNoiseSource
- 20200229 training race L2 - 2 tree species Statistics (25 points)
- GKRandomSource
- 蓝桥杯电子类嵌入式第十届省赛
- OCR knowledge summary
- Invalid ROM Table原因及解决办法
- Excel word 简单 技巧 整理(持续更新 大概~)
猜你喜欢
随机推荐
Samba server configuration
20200217 training match L1 - 7 2019 is coming (20 points)
Yan reported an error: could not find any valid local directory for nmprivate/
判断数码管是共阳极还是共阴极
GKNoiseMap
GKNoise
蓝桥杯嵌入式-HAL库-USART_RX
GKPolygonObstacle
Using k-means clustering to classify tariff models of different industries
Network file system service (NFS)
nodejs:mongodb 插入成功之后的返回值
GKRandomSource
GKNoiseSource
3、MapReduce详解与源码分析
Markdown to word or PDF
Codeforces Round #614 (Div. 2) B. JOE is on TV!
11_ue4进阶_男性角色换成女性角色,并修改动画
Blue Bridge Cup embedded Hal library systick
The 11th Blue Bridge Cup Undergraduate group competition (20200321)
Tree Shaking和DCE







