TCH (statz) | #1, Főfasz (10466) |
2531 | #27fa | ^ | Idézet | Fri, 27 Sep 2013 21:18:46 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Értem, csak az a baj, hogy fingom sincs, hogy kell egy C-s object fájlhoz normális Pascal interface-t csinálni. Leforgattam a tinfl.c-t (gcc -c tinfl.c) és írtam hozzá egy Pascal fájlt unit tinfl; interface function tinfl_decompress_mem_to_mem(pout_buf: pointer; out_buf_len: longword; psrc_buf: pointer; src_buf_len: longword; flags: integer): longword; cdecl; implementation function tinfl_decompress_mem_to_mem(pout_buf: pointer; out_buf_len: longword; psrc_buf: pointer; src_buf_len: longword; flags: integer): longword; cdecl; external; end.ami még le is fordul, de amikor használnám program test; uses tinfl; begin end.akkor tinfl.o: In function `TINFL_TINFL_DECOMPRESS_MEM_TO_MEM$POINTER$LONGWORD$POINTER$LONGWORD$SMALLINT$$LONGWORD': tinfl.pas:(.text+0x1): undefined reference to `tinfl_decompress_mem_to_mem' test.pas(6,1) Error: Error while linking test.pas(6,1) Fatal: There were 1 errors compiling module, stoppingés baszhatom. No mondjuk arra még rájöttem, hogy size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags)helyett size_t extern tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags)és akkor ezt már megtalálja, de akkor meg test.o:(.data+0x2c): undefined reference to `THREADVARLIST_TINFL' tinfl.o: In function `tinfl_decompress': tinfl.c:(.text+0xa26): undefined reference to `memcpy' tinfl.c:(.text+0xae3): undefined reference to `memset' tinfl.c:(.text+0xd17): undefined reference to `memset' tinfl.c:(.text+0xe7d): undefined reference to `memset' tinfl.c:(.text+0xe9c): undefined reference to `memset' tinfl.c:(.text+0xebb): undefined reference to `memset' tinfl.o:tinfl.c:(.text+0x162f): more undefined references to `memset' follow tinfl.o: In function `tinfl_decompress': tinfl.c:(.text+0x16bd): undefined reference to `memcpy' tinfl.c:(.text+0x1703): undefined reference to `memcpy' tinfl.o: In function `tinfl_decompress_mem_to_mem': tinfl.c:(.text+0x2b33): undefined reference to `__stack_chk_fail' test.pas(6,1) Error: Error while linking test.pas(6,1) Fatal: There were 1 errors compiling module, stoppingés újfennt baszhatom. Ezért szeretném átírni Pascalra, mert a faszom se akar szopni a C marhaságaival. De a benne lévő makrók akkora konvulens katyvaszok, hogy kihullik tőlük a fogam. |