Компиляция простой программы на C для рендеринга с Pixie(renderman с открытым исходным кодом)
Поэтому я использую MinGW в качестве компилятора C для Windows, я сделал простую программу на C
#include "ri.h"
RtPoint Square[4] = { { .5,.5,.5} ,{.5,-.5,.5} , {-.5,.5,.5} , {-.5, -.5 , .5}};
static RtColor Color = {.2,.4,.6};
int main(){
RiBegin (" square.rib" );
RiDisplay ( " square.tif" , "file" ,"rgb" ,RI_NULL);
RiWorldBegin();
RiSurface("constant" , RI_NULL);
RiColor(Color);
RiPatch (RI_BILINEAR,RI_P,(RtPointer)Square,RI_NULL);
//RiPatch (RI_BICUBIC,RI_P,(RtPointer)Square,RI_NULL);
RiWorldEnd();
RiEnd();
return 0;
}
поэтому я использую команду...
gcc -o test.o test.c -I"\..\Program Files (x86)\Pixie\include" -L"\..\Program Files (x86)\Pixie\lib" -lri
определить, где находятся файлы включения для прекомпилятора... и где находятся библиотеки для компоновщика
Я получаю следующие ошибки
:\Users\Edward\AppData\Local\Temp\ccEERD04.o:test.c:(.text+0x6e): undefined ref
erence to `_imp__RI_P'
C:\Users\Edward\AppData\Local\Temp\ccEERD04.o:test.c:(.text+0x75): undefined ref
erence to `_imp__RI_BILINEAR'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: C:\Users\E
dward\AppData\Local\Temp\ccEERD04.o: bad reloc address 0x20 in section `.eh_fram
e'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Я попытался посмотреть, не пропустил ли я библиотеку для ссылок, но... ничего, что я вижу, однако отсутствующие ссылки находятся в файлах.h.
У кого-нибудь есть предложения?
1 ответ
Мне удалось найти обходной путь к этой проблеме.... Я посмотрел исходный файл для ri.h и нашел, к чему были инициализированы константы. RI_P был "P" RI_BILINEAR был "билинейный"
Я изменился
RiPatch (RI_BILINEAR,RI_P,(RtPointer)Square,RI_NULL);
в
RiPatch ("bilinear","P",(RtPointer)Square,RI_NULL);
это позволило мне скомпилировать файл c и RNDR изображение.