Ответ 1
Вы ожидаете проблемы с компоновщиком, библиотека profile_rt
использует fopen$UNIX2003
и fwrite$UNIX2003
функции вместо fopen
и fwrite
.
Все, что вам нужно, это добавить в проект следующий .c
файл:
#include <stdio.h>
FILE *fopen$UNIX2003( const char *filename, const char *mode )
{
return fopen(filename, mode);
}
size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d )
{
return fwrite(a, b, c, d);
}
Этот код просто переназначает отсутствующие функции на стандартные.
Примечание в суффиксе $UNIX2003
:
Я нашел документ Apple, в котором говорится:
В вариантах соответствия UNIX ™ используется суффикс $UNIX2003.
Важно. Работа для соответствия UNIX ™ началась в Mac OS 10.4, но не была завершена до 10.5. Таким образом, в 10.4 версиях libSystem.dylib существует множество соответствующих символов (с суффикс $UNIX2003). Список не является полным, и соответствующее поведение вариантов символов может быть неполным, поэтому их следует избегать.
Поскольку 64-разрядная среда не имеет никакого наследия для поддержки, она была создана для соответствия UNIX ™ с самого начала без использования суффикса $UNIX2003. Так, например, _fputs $UNIX2003 в 32-битных и _fputs в 64-битных будет иметь такое же согласованное поведение.
Поэтому я ожидаю, что libprofile_rt
будет связан с 10.4 SDK.