Вы ожидаете проблемы с компоновщиком, библиотека 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
:
Iобнаружил документ Apple , в котором говорится:
Варианты соответствия UNIX ™ используют суффикс $ UNIX2003.
Важное замечание: Работа над соответствием UNIX ™ началась вMac OS 10.4, но не была завершена до 10.5.Таким образом, в версиях libSystem.dylib версии 10.4 существует множество соответствующих символов варианта (с суффиксом $ UNIX2003).Список не является полным, и соответствующее поведение вариантов символов может быть неполным, поэтому их следует избегать.
Поскольку 64-битная среда не имеет устаревшего обслуживания, она была создана для UNIX ™.с самого начала, без использования суффикса $ UNIX2003.Так, например, _fputs $ UNIX2003 в 32-разрядной версии и _fputs в 64-разрядной версии будут работать одинаково.
Поэтому я ожидаю, что libprofile_rt
будет связан с 10.4 SDK.