|
Boost Users : |
From: dejfson (dejfson_at_[hidden])
Date: 2008-08-18 08:11:40
Dear All,
if I try this piece of code:
----------------------------------------------
---------------------------------------------
extern "C" {
#include <vmeapi.h>
}
#include <iostream>
#include <signal.h>
#include <string>
#include <boost/program_options.hpp>
// FANCY THINGY HERE: IF YOU INCLUDE CURSES BEFORE STRING, IT WILL
BREAK COMPILATION
#include <curses.h>
//using namespace std;
//namespace po = boost::program_options;
static void sig_catch(int sig)
{
VME_Release();
/* Exception handler */
switch(sig)
{
case SIGINT :
case SIGTERM :
// nl();
// echo();
cout << "\nVME safe exit." << endl;
VME_Release();
if (VME_IsErr())
{
cout << "Errors at VME_Release():" << endl;
VME_DispErr();
}
exit(0);
break;
default : break;
}
}
int main (int argc, char **argv)
{
/* Init VME access */
VME_Init();
if (VME_IsErr())
{
VME_DispErr();
cout << "^C to quit." << endl;;
}
/* Turn off auto error reporting */
VME_ErrQuiet();
/* Install signal handler */
if (signal(SIGINT, &sig_catch) == (void *) -1)
cout << "VMET Can't install SIGINT handler." << endl;
if (signal(SIGTERM, &sig_catch) == (void *) -1)
cout << "VMET Can't install SIGTERM handler." << endl;
cout << "works somehow" << endl;
VME_Release();
if (VME_IsErr())
VME_DispErr();
}
----------------------------------------------------------
----------------------------------------------------------
it does not compile. Compilator identifies the problem as:
g++ -pipe -fcommon -I/acc/local/ppc4/include -D__NO_INCLUDE_WARN__
-I/user/biswop/include -I./include -c main.cpp -o main.ppc4.o
In file included from /acc/local/ppc4/include/boost/program_options.hpp:15,
from main.cpp:8:
/acc/local/ppc4/include/boost/program_options/parsers.hpp:156: parse
error before `>'
make: *** [main.ppc4.o] Error 1
------------------------------------------------------------
By looking on the code in parsers.hpp I do not see any particular
breaks, thus I suspect that there is something very odd with compiler.
This piece of code
is used on PPC processors in VME industrial crates. The operating
system is LynxOS, however it uses quite old version of compiler -
2.95.3. I do not have
any chance how to upgrade it as we use this compiler everywhere. Boost
version is 1.33.1 (and again no chance to upgrade, however in this
respect I could
very probably force cross-compiler to compile the library)
I would appreciate any info/hint how to make it running by using this compiler.
Thanks a lot
d.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net