10
我有一系列的警告,我試圖用visual studio 10建設gdcm時修復(32位版本):如何解決這個vs10不一致的dll聯動警告?
4>..\..\..\..\gdcm\Utilities\gdcmexpat\lib\xmlparse.c(647): warning C4273: 'XML_ParserCreate' : inconsistent dll linkage
4> d:\src\gdcm\gdcm\utilities\gdcmexpat\lib\expat.h(206) : see previous definition of 'XML_ParserCreate'
函數調用本身看起來像:
XML_Parser XMLCALL
XML_ParserCreate(const XML_Char *encodingName)
{
return XML_ParserCreate_MM(encodingName, NULL, NULL);
}
哪裏
#define XMLCALL __cdecl
和
XMLPARSEAPI(XML_Parser)
XML_ParserCreate(const XML_Char *encoding);
其中
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
和
#define XMLIMPORT __declspec(dllimport)
如果我讀,妥善,這意味着聯動始終通過XMLCALL--權__cdecl?因爲,如果是這樣,那麼警告是多餘的,還是我誤解了這個?
這就是它 - 這dllimport的應該是一個DLLEXPORT。 – mmr 2011-03-17 22:14:46
哇,我錯過了一個變量被導出。在標頭,我有這樣的事情'COMMON_API的extern常量的std :: string someStr;'而在cpp文件我'常量的std :: string someStr(「背景」);'這是缺少出口/進口符。 API宏根據項目是否定義了一個宏來改變團隊,告訴它是否爲dll構建。我必須密切注意這一點。 – jxramos 2016-07-19 18:00:55