Menu

compiler or linker errors?

Greg
2007-08-29
2012-09-26
  • Greg

    Greg - 2007-08-29

    i keep getting the following compiler errors:
    Compiler: Default compiler
    Building Makefile: "C:\Dev-Cpp\Code\Projects\X3\Dependants\ortp-0.13.1\build\win32native\Makefile.win"
    Executing make clean
    rm -f ../../src/avprofile.o ../../src/jitterctl.o ../../src/ortp.o ../../src/payloadtype.o ../../src/port.o ../../src/posixtimer.o ../../src/rtcp.o ../../src/rtcpparse.o ../../src/rtpparse.o ../../src/rtpsession.o ../../src/rtpsignaltable.o ../../src/rtptimer.o ../../src/scheduler.o ../../src/sessionset.o ../../src/str_utils.o ../../src/telephonyevents.o ../../src/utils.o ../../src/dll_entry.o ../../src/event.o ../../src/stun.o ../../src/stun_udp.o ../../src/rtpsession_inet.o ortp.dll

    gcc.exe -c ../../src/avprofile.c -o ../../src/avprofile.o -I"C:/Dev-Cpp/include" -I"../../include" -I"." -O2 -march=i586

    gcc.exe -c ../../src/jitterctl.c -o ../../src/jitterctl.o -I"C:/Dev-Cpp/include" -I"../../include" -I"." -O2 -march=i586

    In file included from C:/Dev-Cpp/include/ortp/rtp.h:25,
    from C:/Dev-Cpp/include/ortp/rtpsession.h:35,
    from ../../src/jitterctl.c:27:
    C:/Dev-Cpp/include/ortp/str_utils.h:35: error: syntax error before "uint32_t"
    C:/Dev-Cpp/include/ortp/str_utils.h:35: warning: no semicolon at end of struct or union
    C:/Dev-Cpp/include/ortp/str_utils.h:36: warning: data definition has no type or storage class
    C:/Dev-Cpp/include/ortp/str_utils.h:37: warning: data definition has no type or storage class

    thats only half of it, the rest just seems to say its not linking correctly. i traced it to a file that has the proper definitions and everything seems fine. i thought by posting it, someone could show me something i'm not seeing in the compile log. Please let me know if you'd like to see the complete log. i'm pretty sure its complaining it can't find the declaration for the type though.

    thanks
    Greg

     
    • Greg

      Greg - 2007-08-31

      oh right. i actually knew that. thanks alot for all your help guys. cheers.

       
    • Nobody/Anonymous

      Post the info from C:/Dev-Cpp/include/ortp/str_utils.h around line 35. There seems to be an error at or before "uint32_t".

       
    • Greg

      Greg - 2007-08-29

      this is whats in the str_utils.h file. line 35 is the un32_t reserved1. however the types for those are declared in port.h and i see them so i don't understand. so i'm thinking it has to do with port.h #pragma statements?

      ///str_utils.h
      /*
      The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.
      Copyright (C) 2001 Simon MORLAT simon.morlat@linphone.org

      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.

      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      Lesser General Public License for more details.

      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
      */

      ifndef STR_UTILS_H

      define STR_UTILS_H

      include <ortp/port.h>

      typedef struct msgb
      {
      struct msgb b_prev;
      struct msgb
      b_next;
      struct msgb b_cont;
      struct datab
      b_datap;
      unsigned char b_rptr;
      unsigned char
      b_wptr;
      uint32_t reserved1;
      uint32_t reserved2;
      } mblk_t;

      typedef struct datab
      {
      unsigned char db_base;
      unsigned char
      db_lim;
      void (db_freefn)(void);
      int db_ref;
      } dblk_t;

      typedef struct _queue
      {
      mblk_t _q_stopper;
      int q_mcount; /number of packet in the q /
      } queue_t;

      ifdef __cplusplus

      extern "C" {

      endif

      void qinit(queue_t *q);

      void putq(queue_t q, mblk_t m);

      mblk_t * getq(queue_t *q);

      void insq(queue_t q,mblk_t emp, mblk_t *mp);

      void remq(queue_t q, mblk_t mp);

      mblk_t * peekq(queue_t *q);

      / remove and free all messages in the q /

      define FLUSHALL 0

      void flushq(queue_t *q, int how);

      void mblk_init(mblk_t *mp);

      / allocates a mblk_t, that points to a datab_t, that points to a buffer of size size. /
      mblk_t *allocb(int size, int unused);

      define BPRI_MED 0

      / allocates a mblk_t, that points to a datab_t, that points to buf; buf will be freed using freefn /
      mblk_t esballoc(uint8_t buf, int size, int pri, void (freefn)(void) );

      / frees a mblk_t, and if the datab ref_count is 0, frees it and the buffer too /
      void freeb(mblk_t *m);

      / frees recursively (follow b_cont) a mblk_t, and if the datab
      ref_count is 0, frees it and the buffer too
      /
      void freemsg(mblk_t *mp);

      / duplicates a mblk_t , buffer is not duplicated/
      mblk_t dupb(mblk_t m);

      / duplicates a complex mblk_t, buffer is not duplicated /
      mblk_t dupmsg(mblk_t m);

      / returns the size of data of a message /
      int msgdsize(const mblk_t *mp);

      / concatenates all fragment of a complex message/
      void msgpullup(mblk_t *mp,int len);

      / duplicates a single message, but with buffer included /
      mblk_t copyb(mblk_t mp);

      / duplicates a complex message with buffer included /
      mblk_t copymsg(mblk_t mp);

      mblk_t * appendb(mblk_t mp, const char data, int size, bool_t pad);
      void msgappend(mblk_t mp, const char data, int size, bool_t pad);

      mblk_t concatb(mblk_t mp, mblk_t *newm);

      define qempty(q) (&(q)->_q_stopper==(q)->_q_stopper.b_next)

      define qfirst(q) ((q)->_q_stopper.b_next!=&(q)->_q_stopper ? (q)->_q_stopper.b_next : NULL)

      define qbegin(q) ((q)->_q_stopper.b_next)

      define qlast(q) ((q)->_q_stopper.b_prev!=&(q)->_q_stopper ? (q)->_q_stopper.b_prev : NULL)

      define qend(q,mp) ((mp)==&(q)->_q_stopper || ((mp)==&(q)->_q_stopper))

      define qnext(q,mp) ((mp)->b_next)

      ifdef __cplusplus

      }

      endif

      endif

      ///////////////////port.h file
      /*
      The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.
      Copyright (C) 2001 Simon MORLAT simon.morlat@linphone.org

      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.

      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      Lesser General Public License for more details.

      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
      /
      /
      this file is responsible of the portability of the stack */

      ifndef ORTP_PORT_H

      define ORTP_PORT_H

      if !defined(WIN32) && !defined(_WIN32_WCE)

      /*****/
      /
      definitions for UNIX flavour */
      /
      ******/

      include <errno.h>

      include <sys/types.h>

      include <pthread.h>

      include <unistd.h>

      include <fcntl.h>

      include <stdlib.h>

      include <stdio.h>

      include <stdarg.h>

      include <string.h>

      ifdef __linux

      include <stdint.h>

      endif

      include <sys/types.h>

      include <sys/socket.h>

      include <netinet/in.h>

      if defined(_XOPEN_SOURCE_EXTENDED) || !defined(__hpux)

      include <arpa/inet.h>

      endif

      include <sys/time.h>

      ifdef ORTP_INET6

      include <netdb.h>

      endif

      typedef int ortp_socket_t;
      typedef pthread_t ortp_thread_t;
      typedef pthread_mutex_t ortp_mutex_t;
      typedef pthread_cond_t ortp_cond_t;

      ifdef __INTEL_COMPILER

      pragma warning(disable : 111) // statement is unreachable

      pragma warning(disable : 181) // argument is incompatible with corresponding format string conversion

      pragma warning(disable : 188) // enumerated type mixed with another type

      pragma warning(disable : 593) // variable "xxx" was set but never used

      pragma warning(disable : 810) // conversion from "int" to "unsigned short" may lose significant bits

      pragma warning(disable : 869) // parameter "xxx" was never referenced

      pragma warning(disable : 981) // operands are evaluated in unspecified order

      pragma warning(disable : 1418) // external function definition with no prior declaration

      pragma warning(disable : 1419) // external declaration in primary source file

      pragma warning(disable : 1469) // "cc" clobber ignored

      endif

      int __ortp_thread_join(ortp_thread_t thread, void **ptr);

      define ortp_thread_create pthread_create

      define ortp_thread_join __ortp_thread_join

      define ortp_thread_exit pthread_exit

      define ortp_mutex_init pthread_mutex_init

      define ortp_mutex_lock pthread_mutex_lock

      define ortp_mutex_unlock pthread_mutex_unlock

      define ortp_mutex_destroy pthread_mutex_destroy

      define ortp_cond_init pthread_cond_init

      define ortp_cond_signal pthread_cond_signal

      define ortp_cond_broadcast pthread_cond_broadcast

      define ortp_cond_wait pthread_cond_wait

      define ortp_cond_destroy pthread_cond_destroy

      define SOCKET_OPTION_VALUE void *

      define SOCKET_BUFFER void *

      define getSocketError() strerror(errno)

      define getSocketErrorCode() (errno)

      else

      /*****/
      / definitions for WIN32 flavour /
      /
      *******/

      include <stdio.h>

      include <stdlib.h>

      include <stdarg.h>

      include <winsock2.h>

      include <ws2tcpip.h>

      ifdef _MSC_VER

      pragma push_macro("WINSOCKAPI")

      ifndef WINSOCKAPI

      define WINSOCKAPI

      endif

      typedef unsigned __int64 uint64_t;
      typedef __int64 int64_t;
      typedef unsigned short uint16_t;
      typedef unsigned int uint32_t;
      typedef int int32_t;
      typedef unsigned char uint8_t;
      typedef __int16 int16_t;

      else

      include <stdint.h> /provided by mingw32/

      endif

      define vsnprintf _vsnprintf

      define srandom srand

      define random rand

      typedef SOCKET ortp_socket_t;
      typedef HANDLE ortp_cond_t;
      typedef HANDLE ortp_mutex_t;
      typedef HANDLE ortp_thread_t;

      define ortp_thread_create WIN_thread_create

      define ortp_thread_join WIN_thread_join

      define ortp_thread_exit(arg)

      define ortp_mutex_init WIN_mutex_init

      define ortp_mutex_lock WIN_mutex_lock

      define ortp_mutex_unlock WIN_mutex_unlock

      define ortp_mutex_destroy WIN_mutex_destroy

      define ortp_cond_init WIN_cond_init

      define ortp_cond_signal WIN_cond_signal

      define ortp_cond_broadcast WIN_cond_broadcast

      define ortp_cond_wait WIN_cond_wait

      define ortp_cond_destroy WIN_cond_destroy

      int WIN_mutex_init(ortp_mutex_t m, void attr_unused);
      int WIN_mutex_lock(ortp_mutex_t mutex);
      int WIN_mutex_unlock(ortp_mutex_t
      mutex);
      int WIN_mutex_destroy(ortp_mutex_t mutex);
      int WIN_thread_create(ortp_thread_t
      t, void attr_unused, void (func)(void), void arg);
      int WIN_thread_join(ortp_thread_t thread, void
      unused);
      int WIN_cond_init(ortp_cond_t
      cond, void *attr_unused);
      int WIN_cond_wait(ortp_cond_t * cond, ortp_mutex_t * mutex);
      int WIN_cond_signal(ortp_cond_t * cond);
      int WIN_cond_broadcast(ortp_cond_t * cond);
      int WIN_cond_destroy(ortp_cond_t * cond);

      define SOCKET_OPTION_VALUE char *

      define inline __inline

      const char *getWinSocketError(int error);

      define getSocketErrorCode() WSAGetLastError()

      define getSocketError() getWinSocketError(WSAGetLastError())

      define snprintf _snprintf

      define strcasecmp _stricmp

      if 0

      struct timeval {
      long tv_sec; / seconds /
      long tv_usec; / and microseconds /
      };

      endif

      int gettimeofday (struct timeval tv, void tz);

      ifdef _WORKAROUND_MINGW32_BUGS

      char * WSAAPI gai_strerror(int errnum);

      endif

      endif

      typedef unsigned char bool_t;

      undef TRUE

      undef FALSE

      define TRUE 1

      define FALSE 0

      ifdef __cplusplus

      extern "C"{

      endif

      void ortp_malloc(size_t sz);
      void ortp_free(void
      ptr);
      void ortp_realloc(void ptr, size_t sz);
      void ortp_malloc0(size_t sz);
      char * ortp_strdup(const char
      tmp);

      define ortp_new(type,count) ortp_malloc(sizeof(type)*(count))

      define ortp_new0(type,count) ortp_malloc0(sizeof(type)*(count))

      int close_socket(ortp_socket_t sock);
      int set_non_blocking_socket(ortp_socket_t sock);

      char ortp_strndup(const char str,int n);
      char ortp_strdup_printf(const char fmt,...);

      ifdef __cplusplus

      }

      endif

      if (defined(WIN32) || defined(_WIN32_WCE)) && !defined(ORTP_STATIC)

      ifdef ORTP_EXPORTS

      #define VAR_DECLSPEC __declspec(dllexport)

      else

      #define VAR_DECLSPEC __declspec(dllimport)

      endif

      else

      #define VAR_DECLSPEC extern

      endif

      endif

       
    • Anonymous

      Anonymous - 2007-08-29

      The error is likely before this file was included, either in jitterctl.c before line 27, rtpsession.h before line 35, or
      rtp.h before line 25. Since it looks like the code in jitterctl.c appears to be the only new code, I would suspect that. If you cannot see it I suggest that you post jitterctl.c upto and including line 27 (where rtpsession.h is included).

      Now the error log is there to help fix your code, you really need to learn to read it. My guess without sight of the code I mentioned is that you cave created a structure and failed to place the terminating ; after }.

      On another note, do not place your projects in sub-folders of C:\Dev-Cpp\, it has been known to cause problems with builds. Apart from that it is just a bad idea in general.

      Clifford

       
    • Greg

      Greg - 2007-08-29

      /*
      The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.
      Copyright (C) 2001 Simon MORLAT simon.morlat@linphone.org

      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.

      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      Lesser General Public License for more details.

      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
      /
      /
      ***********
      * jitterctl.c
      *
      * Mon Nov 8 11:53:21 2004
      * Copyright 2004 Simon MORLAT
      * Email simon.morlat@linphone.org
      *************/

      include "ortp/rtpsession.h"

      This is jitterctl.c up to and including line 27. as you can see the culprit is rtpsession.h whose first include is port.h and there in port.h the types for unint32_t is defined. thats where i traced it to, thats where i'm sure there is a problem almost as if its not being included in the project.

      i thought i could read the error log, but i'll check the faq again and see if i missed something in the interim i appreciate you responding and any errors you can see on my part. i'll also move the project out of dev
      thanks
      greg

       
    • Greg

      Greg - 2007-08-29

      actually i should have just done this before: http://download.savannah.nongnu.org/releases/linphone/ortp/sources/?C=M;O=D

      this is a link to already dev project for the library i'm attempting to compile. its already in a dev project so all you need to do is download it, and go straight to the build directory,open in dev and compile it. if it compiles clean for others then maybe my download is corrupted or something else - but at least i'll know its on my end.
      thanks

       
    • Nobody/Anonymous

      The definition for unint32_t is actually in C:/Dev-Cpp/include/stdint.h. Line 32 should look like this:
      typedef unsigned uint32_t;
      Check and make sure you have this definition.

       
    • Greg

      Greg - 2007-08-29

      man i think i get high off of seeing a succesfull compilation!!! whoot! you mr. Nobody/Anonymous are a godsend!! bless you! it turns out the problem was that i had compiled another project before that had used stdint as well and somehow had commented out the typedef in stdint.h. so now when i tried to include it from port.h it was being included still but that typedef was commented out!!
      thank you so much man/woman!! thank you so much!!
      Greg

       
      • Anonymous

        Anonymous - 2007-08-29

        You modified the standard headers!? Why don't you set them to read-only? It seems they need protecting from you! ;-)

         
    • Greg

      Greg - 2007-08-30

      :D yeah they do. does dev have a functionality to do that? please advise.

       
      • Anonymous

        Anonymous - 2007-08-30

        ... No windows has the functionality to do that!

        In explorer, select the folder, right click, select properties, click read-only bit until it contains a tick (it has three states), then OK and "apply changes to this folder, sub-folders and files".

        Clifford

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.