Typedef does not work to name a type


 
Thread Tools Search this Thread
Top Forums Programming Typedef does not work to name a type
# 1  
Old 01-07-2015
Typedef does not work to name a type

Hello,
This is related to the closed post in the forum for the installation of the same software called arachne, but with different error message:
Code:
In file included from ueberal/MiniSuperizer.cc:5:0:
./random/GnuRandom.h:54:5: error: ‘_G_uint32_t’ does not name a type
     _G_uint32_t u;
     ^
./random/GnuRandom.h:59:5: error: ‘_G_uint32_t’ does not name a type
     _G_uint32_t u[2];
     ^
./random/GnuRandom.h:73:13: error: ‘_G_uint32_t’ does not name a type
     virtual _G_uint32_t asLong() = 0;

It seems the error is related to the #ifndef ... #endif block at the very beginning, but I am not sure how to debug this.
Code:
 33 #ifndef GNURANDOM
 34 #ifdef __GNUG__
 35 #pragma interface
 36 #else
 37 typedef int _G_int32_t
 38 #endif
 39 #define GNURANDOM
 40 
 41 #include <math.h>
 42 #ifdef __linux
 43 #include <_G_config.h>
 44 #else
 45 #include "random/GnuTypes.h"
 46 #include "random/GnuRandom.h"
 47 #endif
 48 #include "system/Assert.h"
 49 
 50 // RNG.h
 51 
 52 union PrivateRNGSingleType {            // used to access floats as unsigneds
 53     float s;
 54     _G_uint32_t u;
 55 };
 56 
 57 union PrivateRNGDoubleType {            // used to access doubles as unsigneds
 58     double d;
 59     _G_uint32_t u[2];
 60 };
 61

The whole header file is "GnuRandom.h" but renamed as "GnuRandom.txt" here and attached for your reference. My PC kernel is:
Code:
Linux HP32 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

There would be a simple change but I just do not know. Thank you in advance!

Last edited by yifangt; 01-07-2015 at 12:20 PM.. Reason: Additional information
# 2  
Old 01-07-2015
Semicolon missing at the end of typedef
Code:
typedef int _G_int32_t;

This User Gave Thanks to MadeInGermany For This Post:
# 3  
Old 01-07-2015
I added the semicolon, but got the same error!

Last edited by yifangt; 01-07-2015 at 02:53 PM..
# 4  
Old 01-07-2015
Preprocess your code but don't compile it:
Code:
cc -E source.c -I... -o source.i

That will tell you what the compiler is actually doing to the source code, especially the #ifdef's.
# 5  
Old 01-08-2015
The typedef cannot be digested by the preprocessor...it is meant for consumption only by the compiler so replace it with something like...
Code:
#define _G_int32_t int

# 6  
Old 01-08-2015
Quote:
Originally Posted by shamrock
The typedef cannot be digested by the preprocessor...it is meant for consumption only by the compiler so replace it with something like...
Code:
#define _G_int32_t int

Never do that.

Using #define creates code that is both syntactically and semantically different from using a typedef.

Consider the following code:
Code:
typedef char *charptr;
charptr a, b;

Now, replace that typedef
Code:
#define charptr char *
charptr a, b;

Not even close to the same code.
# 7  
Old 01-08-2015
@achenle:
Embedded spaces in preprocessor #defines are always a cause of confusion and error...however the issue with the OP is one of supplying a compiler statement to a preprocessor...
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Help me to understand strange 'typedef ... ' in some source...

Working on some source I've found some strange declaration in included header file. I am looking for someone's help to understand me that syntax's, as it is fine (it is compiled without any complain,) but for me it seems out of any sense! Acctually, it warning by CC compiler: " Warning: Implicit... (1 Reply)
Discussion started by: alex_5161
1 Replies

2. Programming

Event driven programming / epoll / typedef union / session data array

Sorry for the “word salad” subject, but I wanted to cast a wide net for help. I've created an IP (Internet Protocol) server which serves HTTP, SMTP, and FTP requests. As you probably know, they all require creating a socket, listening on it, accepting connections, and then having a short... (3 Replies)
Discussion started by: John S.
3 Replies

3. Programming

Compilation problem with typedef

I am getting confused compiling a program that gives me the following error ../../../tomso/algeb/vector.hpp:19:9: error: ‘Vector' does not name a type typedef Vector<float> Vecflt; (1 Reply)
Discussion started by: kristinu
1 Replies

4. Shell Programming and Scripting

Need Role Name for my type of work

Hi , I am planning for the interview . I am having one question here , I worked on unix and shellscripting for 2 years Done- Ø Coding and testing of Server Monitoring ShellScripts Ø Deployment on UNIX production environment I have written so many shellscripts for monitoring... (5 Replies)
Discussion started by: aish11
5 Replies

5. Programming

typedef help

Hi! This is part of my my code : typedef struct{ int x; char na; char sur; } Stu; typedef struct{ Stu *arr; int size; int sort; } Stus; I want to ask how can i free() the matrix arr. I tried free(arr), free(Stus.arr) and i get errors with gcc. My problem, in... (3 Replies)
Discussion started by: giampoul
3 Replies

6. UNIX for Dummies Questions & Answers

Any Beos versions work on AMD64-type PCs?

Preparing to get my first home PC via custom-build shop. It will have three hard disk drives...one to be used only for trial of various OSs. Was hoping to test out Haiku, but according to 'supported architectures' table at Wikipedia ("Comparison of open source operating systems"), it only works on... (3 Replies)
Discussion started by: Varsel
3 Replies

7. Programming

typedef struct forward declaration

I've google a bit about this and couldn't find an answer. Actually I read that it can't be done. Basically I've defined the following structure and typedef it as follows. stuct Name { }; typdef struct Name Name. and right after it, defined some API that use it. void blabla(Name*... (6 Replies)
Discussion started by: emitrax
6 Replies

8. Programming

How to typedef

I want to declare char ch as ch_9 with the help of the typedef statement. Thanks (1 Reply)
Discussion started by: krishna_sicsr
1 Replies

9. Solaris

Conflicting 'typedef' error - Which gcc switch to use?

I am using gcc3.3.5 on solaris2.7. Its a 64 bit compilation I am compiling a file 'plugin.cpp'. It includes mach.h and the complation gives the following error. ----------------------------------------------------------------- mach.h error: conflicting types for `typedef vx_u32_t... (0 Replies)
Discussion started by: amitc
0 Replies
Login or Register to Ask a Question