私はオープンソースコード(pngcrush)を変更していて、いくつかのC++ヘッダー(fstream、iostream)を含めたいと思っています。cベースのコードのC++ヘッダー(fstream)が含まれていますか?
このようなファイルはありません。
どのようにそれらを含めることができますか?使用して(私はCコードとして、それをコンパイルすることになった
-
は、第二編集
-EDIT-
adler32.c:60: error: ‘uLong adler32’ redeclared as different kind of symbol
zlib.h:1469: error: previous declaration of ‘uLong adler32(uLong, const Bytef*, uInt)’
adler32.c:60: error: ‘adler’ was not declared in this scope
adler32.c:60: error: ‘buf’ was not declared in this scope
adler32.c:60: error: ‘len’ was not declared in this scope
adler32.c:64: error: expected unqualified-id before ‘{’ token
adler32.c:12: warning: ‘uLong adler32_combine_(uLong, uLong, long int)’ declared ‘static’ but never defined
make: *** [adler32.o] Error 1
Compilation exited abnormally with code 2 at Wed Jan 5 18:51:02
コードで
uLong ZEXPORT adler32(adler, buf, len)
uLong adler;
const Bytef *buf;
uInt len;
{
unsigned long sum2;
unsigned n;
- ありがとうgcc)bu #ifdef __cplusplus extern "C" {} #endif .. #ifdefをプロジェクトの他のCコードの後に置きます。
それは今コンパイルが、私は私のCにこのlibpngcrush.aをリンクするときに警告して、また
ar rcs libpngcrush.a png.o pngerror.o pngget.o pngmem.o pngpread.o pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o adler32.o compress.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o simplepngcrush.o /usr/bin/ranlib: file: libpngcrush.a(pngpread.o) has no symbols
(RANLIBが何のシンボルを持っていない、私はそれが唯一のMac OSに起こるように見える、それをGoogleで検索)++コード、
初めてライブラリにある関数を呼び出すと死んでしまいます。Run till exit from #0 0x0000000100089071 in simplepngcrush() at tokenlist.h:118 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000 0x00000001000890f8 in simplepngcrush() at tokenlist.h:118
私は、呼び出された関数の最初の行にも到達できません。
感謝..このCコードでは動作していないようですが、私はchangec CC = g ++ LD = g ++でした。編集 – eugene
私の答えを更新しました。 – peoro
おっと、はい、この例のように定義してください、ごめんなさい! - fixed – peoro