Я пытаюсь создать динамическую библиотеку, используя Qt на OS X 10.6.7 и Qt 4.7.3.Я создал самый базовый тест, который только могу себе представить (см. Ниже или https://gist.github.com/1016045), и все же
otool -T build/libstackoverflow.dylib
все еще сообщает
build/libstackoverflow.dylib:
Table of contents (0 entries)
module index symbol index
Я предполагаю, что должен увидетьчто-то еще в этом списке связано с факториалом.
Контрольный пример (также по адресу: https://gist.github.com/1016045):
// main.cpp
#include <stdint.h>
#include <QtCore/QtGlobal>
#if defined(MYSHAREDLIB_LIBRARY)
# define MYSHAREDLIB_EXPORT Q_DECL_EXPORT
#else
# define MYSHAREDLIB_EXPORT Q_DECL_IMPORT
#endif
MYSHAREDLIB_EXPORT uint64_t factorial(int max) {
int i = max;
uint64_t result = 1;
while (i >= 2)
result *= i--;
return result;
}
// stackoverflow.pro
TEMPLATE = lib
DEFINES += MYSHAREDLIB_LIBRARY
CONFIG += qt dll
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
DESTDIR = ./build
# Input
SOURCES += main.cpp
Для построения:
qmake
make
Я прочитал:
Пожалуйста, порекомендуйте другие ресурсы, если применимо!
РЕДАКТИРОВАТЬ:
Я полагаю, что символы могут быть экспортированы правильно, хотя их имена искажены (или, по крайней мере, кажется), что я думал, используя макрос Q_DECL_EXPORT, чтобы избежать. Например, вотрезультат запуска nm -g build / libstackoverflow.dylib:
0000000000001f20 T __Z9factoriali
U ___gxx_personality_v0
U dyld_stub_binder
Это то, что я должен ожидать?