FreeImage 3.18.0 在VS2017下编译
admin
2023-02-19 17:20:12
0

点击FreeImage.2017.sln解决方案


动态库编译点击生成工程FreeImage
注意:C/C++预编译器添加预编译定义FREEIMAGE_EXPORTS,对函数进行导出


静态库编译点击生成工程FreeImageLib
注意:C/C++预编译器添加预编译定义FREEIMAGE_LIB


输出文件保存在Dist/x32中


头文件的宏定义编译细节如下:
#if defined(FREEIMAGE_LIB)
 #define DLL_API
 #define DLL_CALLCONV
#else
 #if defined(_WIN32) || defined(__WIN32__)
  #define DLL_CALLCONV __stdcall
  // The following ifdef block is the standard way of creating macros which make exporting
  // from a DLL simpler. All files within this DLL are compiled with the FREEIMAGE_EXPORTS
  // symbol defined on the command line. this symbol should not be defined on any project
  // that uses this DLL. This way any other project whose source files include this file see
  // DLL_API functions as being imported from a DLL, wheras this DLL sees symbols
  // defined with this macro as being exported.
  #ifdef FREEIMAGE_EXPORTS
   #define DLL_API __declspec(dllexport)
  #else
   #define DLL_API __declspec(dllimport)
  #endif // FREEIMAGE_EXPORTS
 #else
  // try the gcc visibility support (see http://gcc.gnu.org/wiki/Visibility)
  #if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
   #ifndef GCC_HASCLASSVISIBILITY
    #define GCC_HASCLASSVISIBILITY
   #endif
  #endif // __GNUC__
  #define DLL_CALLCONV
  #if defined(GCC_HASCLASSVISIBILITY)
   #define DLL_API __attribute__ ((visibility("default")))
  #else
   #define DLL_API
  #endif  
 #endif // WIN32 / !WIN32
#endif // FREEIMAGE_LIB


问题分析

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_ConvertToGreyscale@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_Initialise@4,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_DeInitialise@0,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::shutdown(void)" (?shutdown@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetVersion@0,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetCopyrightMessage@0,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_SetOutputMessage@4,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_AllocateT@28,该符号在函数 "private: struct FIBITMAP * __thiscall Ogre::FreeImageCodec::encodeBitmap(class Ogre::SharedPtr &,class Ogre::SharedPtr &)const " (?encodeBitmap@FreeImageCodec@Ogre@@ABEPAUFIBITMAP@@AAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_Unload@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_Save@16,该符号在函数 "public: virtual void __thiscall Ogre::FreeImageCodec::encodeToFile(class Ogre::SharedPtr &,class std::basic_string,class std::allocator > const &,class Ogre::SharedPtr &)const " (?encodeToFile@FreeImageCodec@Ogre@@UBEXAAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_OpenMemory@8,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_CloseMemory@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_LoadFromMemory@12,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_SaveToMemory@16,该符号在函数 "public: virtual class Ogre::SharedPtr __thiscall Ogre::FreeImageCodec::encode(class Ogre::SharedPtr &,class Ogre::SharedPtr &)const " (?encode@FreeImageCodec@Ogre@@UBE?AV?$SharedPtr@VDataStream@Ogre@@@2@AAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_AcquireMemory@12,该符号在函数 "public: virtual class Ogre::SharedPtr __thiscall Ogre::FreeImageCodec::encode(class Ogre::SharedPtr &,class Ogre::SharedPtr &)const " (?encode@FreeImageCodec@Ogre@@UBE?AV?$SharedPtr@VDataStream@Ogre@@@2@AAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetFIFCount@0,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetFormatFromFIF@4,该符号在函数 "void __cdecl Ogre::FreeImageLoadErrorHandler(enum FREE_IMAGE_FORMAT,char const *)" (?FreeImageLoadErrorHandler@Ogre@@YAXW4FREE_IMAGE_FORMAT@@PBD@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetFIFExtensionList@4,该符号在函数 "public: static void __cdecl Ogre::FreeImageCodec::startup(void)" (?startup@FreeImageCodec@Ogre@@SAXXZ) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_FIFSupportsExportBPP@8,该符号在函数 "private: struct FIBITMAP * __thiscall Ogre::FreeImageCodec::encodeBitmap(class Ogre::SharedPtr &,class Ogre::SharedPtr &)const " (?encodeBitmap@FreeImageCodec@Ogre@@ABEPAUFIBITMAP@@AAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_FIFSupportsExportType@8,该符号在函数 "private: struct FIBITMAP * __thiscall Ogre::FreeImageCodec::encodeBitmap(class Ogre::SharedPtr &,class Ogre::SharedPtr &)const " (?encodeBitmap@FreeImageCodec@Ogre@@ABEPAUFIBITMAP@@AAV?$SharedPtr@VMemoryDataStream@Ogre@@@2@AAV?$SharedPtr@VCodecData@Codec@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetFileTypeFromMemory@8,该符号在函数 "public: virtual class std::basic_string,class std::allocator > __thiscall Ogre::FreeImageCodec::magicNumberToFileExt(char const *,unsigned int)const " (?magicNumberToFileExt@FreeImageCodec@Ogre@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBDI@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetImageType@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetBits@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetBPP@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetWidth@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetHeight@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetPitch@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetColorType@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_GetGreenMask@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_IsTransparent@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_ConvertTo24Bits@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK2019 无法解析的外部符号 __imp__FreeImage_ConvertTo32Bits@4,该符号在函数 "public: virtual struct std::pair,class Ogre::SharedPtr > __thiscall Ogre::FreeImageCodec::decode(class Ogre::SharedPtr &)const " (?decode@FreeImageCodec@Ogre@@UBE?AU?$pair@V?$SharedPtr@VMemoryDataStream@Ogre@@@Ogre@@V?$SharedPtr@VCodecData@Codec@Ogre@@@2@@std@@AAV?$SharedPtr@VDataStream@Ogre@@@2@@Z) 中被引用 OgreMain F:\AI\mogre\.build\vs2013\OgreFreeImageCodec.obj 1 
错误 LNK1120 31 个无法解析的外部命令 OgreMain F:\AI\mogre\bin\Debug\x86\OgreMain_d.dll 1


 无法解析的外部符号 __imp__FreeImage_Initialise@4说明

__imp__FreeImage_Initialise@4是函数编译为动态库时候的地址,说明FreeImage.lib中没有该函数的地址

调用命令查看FreeImage.lib中的函数声明

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe" /SYMBOLS  F:\AI\FreeImage\Win32\Debug\FreeImaged.lib > D:FreeImageLib.txt

说明编译出来的FreeImage.lib是静态库,静态库中函数地址如下:__imp__FreeImage_Initialise,重新编译动态库,链接动态库解决问题





相关内容

热门资讯

美国在巴拿马“秀肌肉”以制衡中... 【文/观察者网 阮佳琪】在遍布蝮蛇、森蚺与成群吸血飞虫的巴拿马境内,美军时隔25年重启了巴拿马丛林训...
女子趁男友熟睡刷脸21次盗转2... 5月6日,记者从上海市公安局普陀分局了解到一起盗窃案,三个多月时间,女友趁男友熟睡,多次解锁手机盗转...
24小时自助健身房:风口之下,... 在北京工作的陈佳佳是一名职场白领。因日常工作繁忙,她在家附近一家24小时无人健身房办理了季度卡,想利...
单煤气灶打不着火怎么办 出现这种状况可能是由多种原因造成的。漏气原因造成,如果煤气表或者是煤气罐出现漏气状况,那么单煤气灶打...
燃气灶被水搞灭了怎么办 如果燃气灶被水淋灭了,这时候千万不要慌乱,首先要采取正确的方法来处理。1.切断燃气如果你注意到燃气灶...
煤气灶打不着火的原因有哪几个方... 原因可能是煤气已经用完或是欠费了,可以更换新的煤气或利己续费;原因可能是电池没电了,可以更换新的电池...
空调有加雪种的说法吗 空调在使用过程中存在这一说法,这里说的雪种其实指的就是空调中的冷凝剂氟利昂。一般情况下用户需要每五年...
燃气灶用的时候火老灭为什么 1、可能是电池没电了或者接触不良,可以把电池扣下再重新装一次,保证电池各个接触面干净。2、然后再次打...
WHO称涉疫邮轮或出现有限“人... 澎湃新闻记者 南博一当地时间2026年5月5日,佛得角普拉亚,一艘救护船从右侧靠近邮轮“洪迪厄斯”号...
衡水二中老师因寻找学生在郑州街... 大皖新闻讯 日前,在河南郑州,一名男子自称是河北衡水二中的老师,为寻找学生遇到困难而乞讨,引发关注。...