Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
0.22
-
None
-
Windows build
Description
The symbol export mechanism for the ampq library has an issue whereby all the exported symbols for amqp.dll are linked into qpidcommon.dll and exported from there.
To expose all the exports use:
cd qpid/cpp find . -name "*.h" | xargs grep _EXTERN
The *_EXTERN then indicates for each symbol which export library the symbol originates. The symbols in question are all the ./amqp/ symbols pegged with the QPID_COMMON_EXTERN. For example:
./amqp/Decoder.h: QPID_COMMON_EXTERN Decoder(const char*, size_t); ./amqp/Decoder.h: QPID_COMMON_EXTERN CharSequence readSequence8(); ./amqp/Decoder.h: QPID_COMMON_EXTERN CharSequence readSequence32();
The fix for this problem is to copy one of the ImportExport.h pattern files and make it work for compiler symbol amqp_EXPORTS. Then change all the QPID_COMMON_EXPORTS in /amqp/*.h to QPID_AMQP_EXPORTS.