C++ Compilierungsproblem (gcc 4.2)

20/04/2008 - 11:11 von Andreas Tscharner | Report spam
Hallo Welt,

Ich versuche gerade den Code von CVSNT (http://www.cvsnt.org/wiki/) aus
dem CVS Repository zu kompilieren und stosse dabei auf einen Fehler, den
ich nicht selbst beheben konnte:

g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -I../../lib
-I../../cvsapi -I/usr/include/libxml2 -I/rdbms/public -I/rdbms/demo
-I/usr/include/postgresql -g -O2 -MT PostgresConnection.lo -MD -MP -MF
.deps/PostgresConnection.Tpo -c postgres/PostgresConnection.cpp -fPIC
-DPIC -o .libs/PostgresConnection.o
In file included from ../../cvsapi/evsapi.h:62,
from postgres/PostgresConnection.cpp:20:
../../cvsapi/evs_sync.h: In constructor
'evs::critical_section::critical_section()':
../../cvsapi/evs_sync.h:56: error: expected primary-expression before
'{' token
../../cvsapi/evs_sync.h:56: error: expected `;' before '{' token
../../cvsapi/evs_sync.h:56: error: expected `}' at end of input
make[3]: *** [PostgresConnection.lo] Fehler 1

und der dazugehörende Code:

class critical_section
{
public:
critical_section() { m_crit = PTHREAD_MUTEX_INITIALIZER; }
~critical_section() { }
void enter() { pthread_mutex_lock(&m_crit); }
void leave() { pthread_mutex_lock(&m_crit); }

protected:
pthread_mutex_t m_crit;
};

Zeile 56 ist die mit dem Constructor

Leider kenne ich mich mit dieser direkten Art der Implementierung zu
wenig gut aus, als dass ich wüsste, was hier falsch ist. Kann mir jemand
helfen?

Danke im Voraus
Andreas
Andreas Tscharner andy@vis.ethz.ch
Gordon's Law:
If you think you have the solution, the question was poorly phrased.
** Posted from http://www.teranews.com **
 

Lesen sie die antworten

#1 Alexander Bartolich
20/04/2008 - 14:33 | Warnen spam
Andreas Tscharner schrieb:
[...]
../../cvsapi/evs_sync.h: In constructor
'evs::critical_section::critical_section()':
../../cvsapi/evs_sync.h:56: error: expected primary-expression before
'{' token
../../cvsapi/evs_sync.h:56: error: expected `;' before '{' token
../../cvsapi/evs_sync.h:56: error: expected `}' at end of input
make[3]: *** [PostgresConnection.lo] Fehler 1

[...]
critical_section() { m_crit = PTHREAD_MUTEX_INITIALIZER; }



Probiers einmal mit

critical_section() : m_crit(PTHREAD_MUTEX_INITIALIZER) {}

Netiquette considered harmful.

Ähnliche fragen