Ich portiere einen Code von Windows zu CentOS, aber ich konfrontiere mit einem Problem, das ich nie zuvor gesehen habe.Sichtbarkeit mit werfen und geteilte Objekte
Da Funktionsdeklaration (es gibt viele mehr):
byte getValueInt8() const throw(.../*Exception*/);
ich diesen Fehler:
error: expected type-specifier before ‘...’ token unsigned short getValueInt8() const throw(.../*Exception*/);
Natürlich habe ich das Internet eingecheckt haben, und ich habe festgestellt, dass es ein Sichtbarkeitsproblem in geteilten Objekten.
Diese Website https://gcc.gnu.org/wiki/Visibility erklärt das, aber ich hatte dies bereits getan, als ich es gelesen habe.
Meine definiert sind:
#if defined(_MSC_VER)
#include <winsock2.h>
#ifdef MFTINTERFACE_EXPORTS
#define EXPORT_IMPORT __declspec(dllexport)
#else
#define EXPORT_IMPORT __declspec(dllimport)
#endif
#elif defined(_GCC)
#include <arpa/inet.h>
#include "CmnSocketsDef.h"
#include "CmnDefs.h"
#define EXPORT_IMPORT __attribute__((visibility("default")))
#else
#define EXPORT_IMPORT
#define IMPORT
#pragma warning Unknown dynamic link import/EXPORT_IMPORT semantics.
#endif
Natürlich sind alle EXPORT_IMPORT sind in meinem Code gut eingestellt.
Der Code vor der Änderung kompiliert in Windows.
Irgendwelche Ideen?
Dank
'throw (...)' bedeutet, dass die Funktion * jede * Ausnahme auslösen können . Das ist ähnlich, als hätte man überhaupt keine Ausnahmebestimmung. –