LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Linking C++ files to C (https://www.linuxquestions.org/questions/programming-9/linking-c-files-to-c-859741/)

flipflopfrog 01-31-2011 05:45 AM

Linking C++ files to C
 
Hi Guys

Im having issues linking C++ files to C files.

Im not sure if its becuase im including c++ header files with C files as I keep getting "error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before .. " errors.

I cant seem to see what i've done wrong besides linking c++ files with C. My H223.c file includes the transcoder.h file which itself includes the umc_transcoder.h both files are C++ files whats the correct syntax or the necessary steps needed to link C++ files to C?

I've attached my Makefile, the Makefile error log, the transcoder.cpp and transcoder.h file

Makefile
Code:

DEFS = -DUNIX -DPOSIX -D LINUX32 -D __KERNEL_STRICT_NAME -D __KERNEL_STRICT_NAMES
CC=gcc -O3 -g #-Werror -Wall
CFLAGS=-O3 -m32
SRCDIR=../source
INCDIR=../include
INCLUDES= -I$(INCDIR)
LIB2= .
#
#IPP STUFF
#
SAMPLE_OS = linux
ARCH = linux32
IPPROOT = /opt/intel/atom/Compiler/11.1/072/ipp/lp32

ROOT_BIN_DIR = /home/john/workspace/ipp-samples/audio-video-codecs/_bin/linux32_gcc4

BinName = ipp_trans
ObjDir = $(ROOT_BIN_DIR)/obj/$(BinName)

SFX = .exe
CXX = /usr/bin/g++
IPPINCDIR = $(wildcard /home/john/workspace/ipp-samples/audio-video-codecs/*/*/*/include /home/john/workspace/ipp-samples/audio-video-codecs/*/*/include ../include)


IPPINCLUDES= -I$(IPPINCDIR)

CINCLUDES = -I$(IPPROOT)/include
CINCLUDES += $(addprefix -I,$(wildcard /home/john/workspace/ipp-samples/audio-video-codecs/*/*/*/include /home/john/workspace/ipp-samples/audio-video-codecs/*/*/include ../include))

OMP_LIB = /usr/lib/gcc/i386-redhat-linux/4.1.1

#
# compiler environment
#
CDEFINES  = -D LINUX32 -D __KERNEL_STRICT_NAME -D __KERNEL_STRICT_NAMES
CFLAGS2    = -Wall -O3 -fPIC -g

#CFLAGS2 += -fopenmp
#CFLAGS2 += openmp

LINK = $(CXX)
LINKFLAGS  = $(CFLAGS2)

LINKFLAGS  += -i-static

#
# Tuning of IPP libraries set
#
IPPLIBPATH =  -L$(IPPROOT)/lib
IPPLIBPATH +=  -L$(IPPROOT)/sharedlib
IPPLIBPATH +=  -L$(COMPILER_HOME)/lib

#IPPLIB = \
        -lippdc$(LIB_ARCH) \
        -lippcc$(LIB_ARCH) -lippac$(LIB_ARCH)  \
        -lippsr$(LIB_ARCH) -lippvc$(LIB_ARCH)  \
        -lippcv$(LIB_ARCH) -lippj$(LIB_ARCH)  \
        -lippi$(LIB_ARCH)  -lipps$(LIB_ARCH)  \
        -lippsc$(LIB_ARCH) -lippcore$(LIB_ARCH)

IPPLIB = \
        -lippdcemerged$(LIB_ARCH) -lippdcmerged$(LIB_ARCH) \
        -lippccemerged$(LIB_ARCH) -lippccmerged$(LIB_ARCH) \
        -lippacemerged$(LIB_ARCH) -lippacmerged$(LIB_ARCH) \
        -lippsremerged$(LIB_ARCH) -lippsrmerged$(LIB_ARCH) \
        -lippvcemerged$(LIB_ARCH) -lippvcmerged$(LIB_ARCH) \
        -lippcvemerged$(LIB_ARCH) -lippcvmerged$(LIB_ARCH) \
        -lippjemerged$(LIB_ARCH)  -lippjmerged$(LIB_ARCH)  \
        -lippiemerged$(LIB_ARCH)  -lippimerged$(LIB_ARCH)  \
        -lippsemerged$(LIB_ARCH)  -lippsmerged$(LIB_ARCH)  \
        -lippscmerged$(LIB_ARCH)  -lippcore$(LIB_ARCH)

-include link_list.ini
EXCLUDE_LIB = empty.list

SYSLIB    = -ldl $(ADD_SYSLIB_$(ARCH)) $(LIBPTHREAD)
SYSLIBPATH =

ADD_LIB_PATHS = -L$(ICCLIBPATH) -L$(ROOT_BIN_DIR)/lib -L$(LIB2)
ADD_LIBS = $(patsubst %,-l%,$(subst .lib,,$(ADD_LIB_$(ARCH))))
ADD_LIBS += $(patsubst %,-l%,$(subst .lib,,$(filter-out $(EXCLUDE_LIB), $(ADD_LIB))))


#end of IPP

ENV = lininexe
PART_NUMBER = 5165
VERSION = 00_66

EXENAME= $(ENV)$(PART_NUMBER)$(VERSION)

OBJECTS = \
        transcoder.o \
        schedule.o \
        shconfig.o \
        main.o \
        router.o \
        play_3g.o \
        h223.o \
        h245.o \
        session.o \
        framehandler.o \
        MULTIMEDIA-SYSTEM-CONTROL.o \
        timer.o \
        compat_glibc.o \
       
LIBRARY = \
        lib/libumc_pipeline.a \
        lib/libdemuxer.a \
        lib/libaac_dec.a \
        lib/libjpeg.a \
        lib/libmp3_dec.a \
        lib/libac3_dec.a \
        lib/libvc1_dec.a \
        lib/libaac_enc.a\
        lib/libmp3_enc.a \
        lib/libaudio_renders.a \
        lib/libvideo_renders.a \
        lib/libdv100_dec.a \
        lib/libdv50_dec.a \
        lib/libdv_dec.a \
        lib/libdv100_enc.a \
        lib/libdv50_enc.a \
        lib/libdv_enc.a \
        lib/libvc1_enc.a \
        lib/libvc1_common.a \
        lib/libvc1_spl.a \
        lib/libavs_spl.a \
        lib/libmpeg4_mux.a \
        lib/libmpeg2_mux.a \
        lib/libavs_dec.a \
        lib/libavs_common.a \
        lib/libavi_spl.a \
        lib/libmpeg2_enc.a \
        lib/libmpeg2_dec.a \
        lib/libh264_dec.a \
        lib/libh264_spl.a \
    lib/libh263_dec.a \
        lib/libcolor_space_converter.a \
        lib/libmedia_buffers.a \
        lib/libcommon.a \
        lib/libscene_analyzer.a \
        lib/libmpeg4_dec.a \
        lib/libmpeg4_enc.a \
        lib/libmpeg4_spl.a \
        lib/libh264_enc.a \
        lib/libh263_enc.a \
        lib/libh261_dec.a \
        lib/libspl_common.a \
        lib/libme.a \
        lib/libumc_io.a \
        lib/libumc.a \
        lib/libvm.a \
        lib/libvm_plus.a \

ipph323: $(OBJECTS)
        $(CC) -o ipph323 $(OBJECTS) libipp_trans.a libtdapist-noflexlm.a libasn1code.a libosstoed.a -fopenmp  $(LIBRARY) $(ADD_LIB_PATHS) $(IPPLIBPATH) $(SYSLIBPATH) $(ADD_LIBS) $(IPPLIB) $(SYSLIB) -lnsl -lpthread -lm -lSDL -lstdc++
#lib_tcp.a

timer.o: $(SRCDIR)/timer.c $(INCDIR)/timer.h $(INCDIR)/schedule.h $(INCDIR)/local.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(SRCDIR)/timer.c

schedule.o: $(SRCDIR)/schedule.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/schedule.c

shconfig.o: $(SRCDIR)/shconfig.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h $(INCDIR)/local.h $(INCDIR)/shconfig.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(SRCDIR)/shconfig.c

main.o: $(SRCDIR)/main.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(CINCLUDES) $(DEFS) $(SRCDIR)/main.c

play_3g.o: $(SRCDIR)/play_3g.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/play_3g.c

h223.o: $(SRCDIR)/h223.c
        $(CC) -c $(CFLAGS) $(CINCLUDES) $(DEFS) $(SRCDIR)/h223.c

h245.o: $(SRCDIR)/h245.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/h245.c

session.o: $(SRCDIR)/session.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/session.c

framehandler.o: $(SRCDIR)/framehandler.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/framehandler.c

router.o: $(SRCDIR)/router.c $(INCDIR)/schedule.h $(INCDIR)/shdata.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/router.c

compat_glibc.o: $(SRCDIR)/compat_glibc.c
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/compat_glibc.c

MULTIMEDIA-SYSTEM-CONTROL.o: $(SRCDIR)/MULTIMEDIA-SYSTEM-CONTROL.c $(INCDIR)/MULTIMEDIA-SYSTEM-CONTROL.h
        $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFS) $(SRCDIR)/MULTIMEDIA-SYSTEM-CONTROL.c

transcoder.o: $(SRCDIR)/transcoder.cpp $(INCDIR)/transcoder_con.h
        $(CC) -c $(CFLAGS) $(CINCLUDES) $(DEFS) $(SRCDIR)/transcoder.cpp


       
clean:
        rm -f $(OBJECTS)
        rm -f $(EXENAME)


Thanks

flipflopfrog 01-31-2011 05:47 AM

Make log

Code:

**** Build of configuration Linux GCC for project ipp3g324m ****

make -f Makefile ipph323
gcc -O3 -g  -c -O3 -m32 -I/opt/intel/atom/Compiler/11.1/072/ipp/lp32/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/ipp_trans/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/umc_transcoder_con/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/umc_video_enc_con/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/ac3_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avi_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/demuxer/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/jpeg/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/me/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_mux/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_mux/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/scene_analyzer/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/spl_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/vm/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/vm_plus/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/audio_renders/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/umc_io/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/video_renders/include -I/home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include -I../include -DUNIX -DPOSIX -DLINUX32 -D __KERNEL_STRICT_NAME -D __KERNEL_STRICT_NAMES ../source/transcoder.cpp
gcc -O3 -g  -c -O3 -m32 -I/opt/intel/atom/Compiler/11.1/072/ipp/lp32/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/ipp_trans/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/umc_transcoder_con/include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/umc_video_enc_con/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/ac3_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avi_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/demuxer/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/jpeg/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/me/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc_int/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_mux/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_mux/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/scene_analyzer/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/spl_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_common/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_dec/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_enc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_spl/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/vm/include -I/home/john/workspace/ipp-samples/audio-video-codecs/core/vm_plus/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/audio_renders/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/umc_io/include -I/home/john/workspace/ipp-samples/audio-video-codecs/io/video_renders/include -I/home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include -I../include -I/home/john/workspace/ipp-samples/audio-video-codecs/application/ipp_trans/include /home/john/workspace/ipp-samples/audio-video-codecs/application/umc_transcoder_con/include /home/john/workspace/ipp-samples/audio-video-codecs/application/umc_video_enc_con/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_dec_int/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/aac_enc_int/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/ac3_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/avi_spl/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_common/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/avs_spl/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/common/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/demuxer/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv100_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv50_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/dv_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h261_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h263_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/h264_spl/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/jpeg/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/me/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_dec_int/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mp3_enc_int/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg2_mux/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_mux/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_spl/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/scene_analyzer/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/spl_common/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_common/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_dec/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_enc/include /home/john/workspace/ipp-samples/audio-video-codecs/codec/vc1_spl/include /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include /home/john/workspace/ipp-samples/audio-video-codecs/core/vm/include /home/john/workspace/ipp-samples/audio-video-codecs/core/vm_plus/include /home/john/workspace/ipp-samples/audio-video-codecs/io/audio_renders/include /home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include /home/john/workspace/ipp-samples/audio-video-codecs/io/umc_io/include /home/john/workspace/ipp-samples/audio-video-codecs/io/video_renders/include /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include ../include  -DUNIX -DPOSIX -DLINUX32 -D __KERNEL_STRICT_NAME -D __KERNEL_STRICT_NAMES ../source/h223.c
In file included from ../include/umc_transcoder_con.h:13,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_structures.h:152: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:17,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/umc_self_destruction_pointer.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_data.h:15,
                from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_data.h:16,
                from /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:14,
                from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_dynamic_cast.h:64: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_dynamic_cast.h:66: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_data.h:16,
                from /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:14,
                from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_data.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:14,
                from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_data.h:54: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_base_codec.h:15,
                from /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:15,
                from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_memory_allocator.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:15,
                from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_base_codec.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:19,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/codec/color_space_converter/include/umc_video_processing.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:22,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_data_reader.h:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:23,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_data_writer.h:28: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:24,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_splitter.h:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_decoder.h:17,
                from ../include/umc_transcoder_con.h:25,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_base_color_space_converter.h:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:25,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_decoder.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_encoder.h:15,
                from ../include/umc_transcoder_con.h:26,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_par_reader.h:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:26,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_encoder.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_buffer.h:16,
                from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_muxer.h:14,
                from ../include/umc_transcoder_con.h:27,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_receiver.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_muxer.h:14,
                from ../include/umc_transcoder_con.h:27,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_buffer.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:27,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_muxer.h:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:28,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_dec/include/umc_mpeg4_video_decoder.h:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/mp4_enc.hpp:35,
                from /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/umc_mpeg4_video_encoder.h:18,
                from ../include/umc_transcoder_con.h:29,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/mp4_enc_bitstream.hpp:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ippBitStream’
/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/mp4_enc_bitstream.hpp:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘:’ token
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/umc_mpeg4_video_encoder.h:18,
                from ../include/umc_transcoder_con.h:29,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/mp4_enc.hpp:39: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘MPEG4_ENC’
In file included from ../include/umc_transcoder_con.h:29,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/codec/mpeg4_enc/include/umc_mpeg4_video_encoder.h:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:31,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_audio_codec.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:32,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_dual_thread_codec.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:34,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_media_data_ex.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_audio_render.h:17,
                from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/umc_base_codecs.h:15,
                from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/codec_pipeline.h:15,
                from ../include/umc_transcoder_con.h:36,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_module_context.h:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/umc_base_codecs.h:15,
                from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/codec_pipeline.h:15,
                from ../include/umc_transcoder_con.h:36,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_audio_render.h:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/umc_base_codecs.h:22,
                from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/codec_pipeline.h:15,
                from ../include/umc_transcoder_con.h:36,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/core/umc/include/umc_video_render.h:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/codec_pipeline.h:17,
                from ../include/umc_transcoder_con.h:36,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/umc_source_types.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/umc_transcoder_con.h:36,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/pipeline/umc_pipeline/include/codec_pipeline.h:28: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘CodecPipeline’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_cyclic_buffer.h:19,
                from ../include/umc_transcoder_con.h:38,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_linear_buffer.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_cyclic_buffer.h:20,
                from ../include/umc_transcoder_con.h:38,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_sample_buffer.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from /home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_cyclic_buffer.h:21,
                from ../include/umc_transcoder_con.h:38,
                from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
/home/john/workspace/ipp-samples/audio-video-codecs/io/media_buffers/include/umc_video_buffer.h:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘UMC’
In file included from ../include/transcoder_con.h:12,
                from ../source/h223.c:32:
../include/umc_transcoder_con.h:80: error: expected specifier-qualifier-list before ‘UMC’
../include/umc_transcoder_con.h:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Transcoder’
make: *** [h223.o] Error 1


flipflopfrog 01-31-2011 05:48 AM

transcoder.cpp

Code:

#include "transcoder_con.h"

#define GENERIC_VIDEO        0
#define H263_VIDEO                1

TranscoderParams transcoder_params;

Transcoder pTranscoder;


int initialise()
{
    //set  up ipp libraries
    ippStaticInit();

    return 0;
}




int SetupTranscoder(int sVideoCapability_chosen, int dVideoCapability_chosen)
{


    //sVideoCapability_chosen = GENERIC_VIDEO;
    /**/
  // UMC::VideoStreamInfo VideoInfo;


    //dVideoCapability_chosen destination video type used for the encoder
    //sVideoCapability_chosen source video type used for the decoder

    //set out
    switch (sVideoCapability_chosen)
    {
        case GENERIC_VIDEO:
            transcoder_params.svideo_stream_type = UMC::MPEG4_VIDEO;
        break;

        case H263_VIDEO:
        //    transcoder_params.svideo_stream_type = UMC::H263_VIDEO;
            transcoder_params.svideo_stream_type = UMC::MPEG4_VIDEO;

        break;

        default:
            transcoder_params.svideo_stream_type = UMC::MPEG4_VIDEO;
        break;
    }

    //Need to see what's needed setup transcoder_params!!!!

    //setup the necessary decoders
    pTranscoder.Init(transcoder_params);
    /**/

    return 0;

}


int call_transcoder(unsigned char *inFrame, int inFrameLength, unsigned char *YUV, int YUVLength, unsigned char *outFrame)
{

    return pTranscoder.Run(inFrame, inFrameLength, YUV, YUVLength, outFrame);
 //  return 0;
}
/*
int main(Ipp32u argc, vm_char* argv[])
{

 return 0;
}
*/

Code:

#ifndef TRANSCODER_CON_H_
#define TRANSCODER_CON_H_


#include "umc_transcoder_con.h"



 int call_transcoder(unsigned char *inFrame, int inFrameLength, unsigned char *YUV, int YUVLength, unsigned char *outFrame);



#endif /* TRANSCODER_CON_H_ */


dwhitney67 01-31-2011 06:07 AM

The first thing I would recommend is that you compile your transcoder.cpp file using g++, not gcc.

The second thing I would recommend is that you clean up the Makefile, so that it can support both C++ and C files. Or was the Makefile generated by an IDE?

P.S. transcoder_con.h seems to be missing many function prototypes.

flipflopfrog 01-31-2011 06:20 AM

Makefile wasn't created by an IDE

What would I need to add to support both C++ and C

Now added all the necessary function prototypes

dwhitney67 01-31-2011 06:35 AM

I would start by modifying the $(CC) below to be $(CXX) instead:
Code:

transcoder.o: $(SRCDIR)/transcoder.cpp $(INCDIR)/transcoder_con.h
        $(CC) -c $(CFLAGS) $(CINCLUDES) $(DEFS) $(SRCDIR)/transcoder.cpp


flipflopfrog 01-31-2011 06:41 AM

Ok i've changed that line is there anything I need to do with this line

h223.o: $(SRCDIR)/h223.c
$(CC) -c $(CFLAGS) $(CINCLUDES) $(DEFS) $(SRCDIR)/h223.c

As the H223.c file calls the transcoder_con.h file?

dwhitney67 01-31-2011 06:50 AM

I believe that if you want to call a C++ function from within C code, that you need to tell compiler that the function will be treated a C function, and hence not name-mangled like typical C++ functions.

In your transcoder_con.h file, you should use something like:
Code:

#ifndef TRANSCODER_CON_H_
#define TRANSCODER_CON_H_

#ifdef __cplusplus
  #define EXTERN extern "C"
#else
  #define EXTERN extern
#endif

#include "umc_transcoder_con.h"

EXTERN int call_transcoder(unsigned char *inFrame, int inFrameLength, unsigned char *YUV, int YUVLength, unsigned char *outFrame);

#endif

Use g++ (CXX) to build the transcoder.cpp. Use gcc (CC) to build your C code, and remember to link with -lstdc++ (which I believe you are doing).

flipflopfrog 01-31-2011 08:07 AM

Thanks

My fault I needed to remove the umc_transcoder_con.h from the transcoder_con.h file. Only the transcoder.cpp needed to see it


All times are GMT -5. The time now is 04:26 AM.