سؤال

لذلك أحاول ربط Xerces 3.0.0 بشكل ثابت على Linux.

لقد فعلت ذلك بالفعل مع رابط ديناميكي وهو يعمل ، لكن من أجل تجنب التبعية ، أريد أن أفعل ذلك بشكل ثابت.

لقد غيرت كل ملفات صنع للقيام بذلك بطريقة مناسبة

-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...

لكني أتلقى أخطاء متابعة:

  undefined reference to '__ctype_b'
  undefined reference to '__ctype_tolower'
  undefined reference to '__ctype_toupper'

لقد أصلحت أولئك الذين لديهم طريقة القوة الغاشمة هنا

ولكن كان هناك نوع آخر من الأخطاء المتعلقة بـ xerces.

Xerces/3.0.0/lib/libxerces-c.a(PosixMutexMgr.o): 
In function `xercesc_3_0::PosixMutexMgr::create(xercesc_3_0::MemoryManager*)':

PosixMutexMgr.cpp:(.text+0x84): undefined reference to `pthread_mutexattr_init'
PosixMutexMgr.cpp:(.text+0x95): undefined reference to `pthread_mutexattr_settype'
PosixMutexMgr.cpp:(.text+0xad): undefined reference to `pthread_mutexattr_destroy'
PosixMutexMgr.cpp:(.text+0xd0): undefined reference to `pthread_mutexattr_destroy'

يبدو الأمر وكأنه pthread المفقود ، لذا حاولت إضافته ، لكن هذا لا يصلح المشكلة ... هذه الأخطاء تأتي من xerces ... ويعمل الإصدار الديناميكي بشكل جيد.

أيه أفكار؟؟؟

شكرًا

هل كانت مفيدة؟

المحلول

سيكون للنسخة الديناميكية من Xerces تبعيات على libpthread والتي تضمن أن المحمل سيلتقط المكتبة الصحيحة.

يجب أن يحدد تحديد LibPhtread على سطر أوامر Linker تلك الخارجية التي لم يتم حلها ، هل قمت (أ) بوضعها في المكان الصحيح في سطر الأوامر باعتبارها أمرًا مهمًا و (ب) هل جربت الإصدارات الثابتة والديناميكية من Libpthread؟

نصائح أخرى

ترتيب LIB المرتبط بالأمور للرابط ، حاول تغيير ترتيب PTHREAD LIB.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top