Re: Function not definen in current scope

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Sun, 21 Mar 2010 14:27:16 -0500


Hi,

You need to make sure that the Microsoft compiler is installed and properly setup in the shell you
start root in (run vcvar32.bat or equivalent).

Cheers,
Philippe.

On 3/21/10 2:12 PM, Cedric Sodhi wrote:
> That is what I get:
>
> Info in <TWinNTSystem::ACLiC>: creating shared library
> E:\mydocs\Programs\Akustik\cassy_h.dll
> 'cl.exe' is not recognized as an internal or external command,
> operable program or batch file.
> Error: external preprocessing failed. (0)
> !!!Removing E:\mydocs\Programs\Akustik\cassy_h_ACLiC_dict.cxx
> E:\mydocs\Programs\Akustik\cassy_h_ACLiC_dict.h !!!
> Error: E:\root\bin\rootcint: error loading headers...
> Error in <ACLiC>: Dictionary generation failed!
> Info in <ACLiC>: Invoking compiler to check macro's validity
>
> regards
>
> On 21.03.2010 20:08, Philippe Canal wrote:
>> Hi,
>>
>> Try by compiling with ACliC:
>>
>> root [0] #include "E:\mydocs\Programs\Akustik\cassy.h+";
>>
>> Cheers,
>> Philippe.
>>
>> On 3/21/10 1:24 PM, Cedric Sodhi wrote:
>>> The weird part about it is that it even tab completes deCASS... and
>>> lists the correct signatures, but doesn't find it nevertheless. I'm
>>> clueless.
>>>
>>> On 21.03.2010 17:30, Cedric Sodhi wrote:
>>>> I'm unfortuanlly not getting anywhere even after I've simplified the
>>>> code as Axel suggested. It now reads:
>>>>
>>>> #include <deque>
>>>> #include <sstream>
>>>> #include <fstream>
>>>> #include <algorithm>
>>>>
>>>> void test( ) { std::cout << "LOADED cassy.h" << std::endl; }
>>>>
>>>> std::deque< float >* deCASSYfy( const char*,const char* const&,const
>>>> unsigned int );
>>>> std::deque< float >* deCASSYfy( std::ifstream&,const char*
>>>> const&,const
>>>> unsigned int );
>>>>
>>>> std::deque< float >* deCASSYfy( const char *inFile,const char* const&
>>>> cols,const unsigned int colcnt ) {
>>>> std::ifstream dataFile( inFile );
>>>> return deCASSYfy( dataFile,cols,colcnt );
>>>> }
>>>>
>>>> std::deque< float >* deCASSYfy( std::ifstream& inFile,const char*
>>>> const&
>>>> cols,const unsigned int colcnt ) {
>>>> if( !inFile.good( ) )
>>>> throw "Filestram could not be read";
>>>> std::cout << sizeof( cols );
>>>> std::deque< float > *dataSet = new std::deque< float >( );
>>>> std::string lastLine;
>>>> float lastVal = 0;
>>>> while( std::getline( inFile,lastLine ) ) {
>>>> unsigned int fieldPos = 0;
>>>> unsigned int j = 0;
>>>> if( lastLine.find( "\t" )!= std::string::npos ) {
>>>> for( unsigned int i = 0; j < colcnt; i++ )
>>>> if( fieldPos != std::string::npos ) {
>>>> std::istringstream lastField( lastLine.substr( fieldPos ) );
>>>> fieldPos = lastLine.find( "\t",fieldPos + 1 );
>>>> if( std::find( cols,cols + colcnt,i )!=( cols + colcnt ) ) {
>>>> lastField >> std::scientific >> lastVal;
>>>> dataSet->push_back( lastVal );
>>>> j++;
>>>> }
>>>> } else {
>>>> dataSet->push_back( 0.0 );
>>>> j++;
>>>> }
>>>> }
>>>> }
>>>> return dataSet;
>>>> }
>>>>
>>>> -----
>>>> Yet, I get
>>>>
>>>> root [0] #include "E:\mydocs\Programs\Akustik\cassy.h";
>>>> root [1] test( );
>>>> LOADED cassy.h
>>>> root [2] const int cols[ ]={ 1,2 };
>>>> root [3] deque< float >* myData = deCASSYfy(
>>>> "E:\\mydocs\\cassy.lab",cols,2 );
>>>> Error: Function deCASSYfy("E:\\mydocs\\cassy.lab",cols,2) is not
>>>> defined
>>>> in curr
>>>> ent scope (tmpfile)(1)
>>>> *** Interpreter error recovered ***
>>>> root [4]
>>>>
>>>
>>
>
Received on Sun Mar 21 2010 - 20:27:22 CET

This archive was generated by hypermail 2.2.0 : Sun Mar 21 2010 - 23:50:02 CET