Sponsored Content
Operating Systems Solaris A compilation problem when using templates Post 302208552 by yp515 on Tuesday 24th of June 2008 07:22:23 AM
Old 06-24-2008
A compilation problem when using templates

Hello life savers,

I'm having trouble compiling a specific program. The program was originally written for gcc and was compiled successfully under it. When trying to compile under Solaris 11, I get this error:

"Hashtable.h", line 170: Error: Could not find a match for hash needed in Hashtable<long long, Orderbook*>::get(long long).
"ReferenceData.cpp", line 59: Where: While instantiating "Hashtable<long long, Orderbook*>::get(long long)".
"ReferenceData.cpp", line 59: Where: Instantiated from non-template code.


line 170 of file "Hashtable.h" is:
int tIndex = (hash(pKey,mSize));

(line 59 of "ReferenceData.cpp" is using it).


The "hash" functions are global, and are defined as followed:

static int hash( int64 pValue, int pMod )
{
int tValue = (int) (pValue & 0x7FFFFFFF);
return (tValue % pMod);
}

static int hash( int pValue, int pMod )
{
return (pValue % pMod);
}

static int hashString( const char *pStr, int pMod )
{
int tLen = (int) strlen( pStr );
unsigned int hash = 0;
unsigned int x = 0;

for(int i = 0; i < tLen; pStr++, i++)
{
hash = (hash << 4) + (*pStr);
if((x = hash & 0xF0000000L) != 0)
{
hash ^= (x >> 24);
}
hash &= ~x;
}

return (int) (hash % pMod);
}

static int hash( const std::string *pStr, int pMod )
{
return hashString( pStr->c_str(), pMod );
}

static int hash( const char *pStr, int pMod )
{
return hashString( pStr, pMod );
}


Please tell me if the pasted code is enough or you need the entire class code for finding what's wrong (didn't want to paste the whole thing. it's long....).


Thanks a lot.
yp515.
 

10 More Discussions You Might Find Interesting

1. Solaris

compilation problem

I am compiling a software named wine When i run make then at the end following error generated. DVAPI32_ -foversion.res version.rc ld.so.1: ../../tools/wrc/wrc: fatal: relocation error: file ../../tools/wrc/wrc: symbol wine_casemap_upper: referenced symbol not found *** Signal 9 make:... (0 Replies)
Discussion started by: mansoorulhaq
0 Replies

2. Programming

compilation problem

i have a class name 1.c in tht i am using function n wich has his body in 2.c and declaration in 2.h now how can i compile 1.c. ex; 1.c int main() { //some data n(10); //somedata } ***** 2.c int n(int k) { //some data } int main() { some data (2 Replies)
Discussion started by: phani_sree
2 Replies

3. Programming

Compilation problem on HP-UX

Hi, Environment : HP-UX avalon B.11.11 U 9000/800 3547052374 unlimited-user license aCC version :aCC: HP ANSI C++ B3910B A.03.37 I need to find a way out of this errors.can anyone help me . $ aCC db.cc -I$ORACLE_HOME/rdbms/public -I/disk1/oracle/product/10.2.0.2/* Error (future)... (1 Reply)
Discussion started by: varuntayur
1 Replies

4. AIX

Pro C Compilation problem

Hi, I have AIX 5.3 and my code is written in proc . i am getting following error during compilation Please help?////..... :-d: Compiling with RMS cc -w -q32 -qidirfirst -ISource/Header -I/usr/vacpp/include -q32 -DRMS -DDISEC -DDBG -DBIGENDIAN -DBIT32 -c -q32... (0 Replies)
Discussion started by: ajaysahoo
0 Replies

5. UNIX for Advanced & Expert Users

Problem on Pro*C compilation on HP-UX

Hi, This is my first post to this forum. I have been facing a strange compilation error message. When I try to make a pro*C file on HP-UX ( uname -a shows HP-UX aopc7449 B.11.11 U 9000/800 2416083493 unlimited-user license), ::: Linking... /usr/ccs/bin/ld: profls.o: Not a valid object file... (5 Replies)
Discussion started by: asutoshch
5 Replies

6. AIX

Compilation problem

hi, I first want to apologize for my poor english ! I'm a newbe on Unix system and I have to install NRPE on an AIX 5.3. I have downloaded the NRPE Source code and i need to compile them... the problem is, when I do a: ./configure --enable-command-args --disable-ssl it returns me :... (1 Reply)
Discussion started by: Cyr1us
1 Replies

7. Programming

C Compilation problem

Dear all I am new to C programming In response to the post cat get_time.c #include <stdlib.h> #include <sys/time.h> main() { struct timeval tv; struct timezone tz; struct tm *tm; gettimeofday(&tv, &tz); tm=localtime(&tv.tv_sec); printf("... (2 Replies)
Discussion started by: on9west
2 Replies

8. AIX

Problem in compilation.

Hi, I am executing the below mentioned code:- proc SQLCHECK=SEMANTICS iname=CDBInteractor.pc parse=none code=cpp cpp_suffix=cpp g++ -c main.cpp g++ -o pre_request_engine main.o -I/oracle/oracle/app/product/10g/precomp -L/oracle/oracle/app/product/10g/lib32 -lnsl -ldl And... (2 Replies)
Discussion started by: tushar_tus
2 Replies

9. Programming

Compilation problem with gfortran

Hello everyone, I'm trying since a few days to compile a f90 program with gfortran (on Ubuntu) with a makefile. The fortran program calls 2 routines written in C. Here is my makefile: FC = gfortran SFC = gfortran FFLAGS = -ffree-form -O... (21 Replies)
Discussion started by: leroygr
21 Replies

10. 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
JIT(3)							User Contributed Perl Documentation						    JIT(3)

NAME
HTML::Template::JIT - a just-in-time compiler for HTML::Template SYNOPSIS
use HTML::Template::JIT; my $template = HTML::Template::JIT->new(filename => 'foo.tmpl', jit_path => '/tmp/jit', ); $template->param(banana_count => 10); print $template->output(); DESCRIPTION
This module provides a just-in-time compiler for HTML::Template. The module works in two phases: Load When new() is called the module checks to see if it already has an up-to-date version of your template compiled. If it does it loads the compiled version and returns you a handle to call param() and output(). Compile If your template needs to be compiled - either because it has changed or because it has never been compiled - then HTML::Template::JIT loads HTML::Template::JIT::Compiler which uses HTML::Template and Inline::C to compile your template to native machine instructions. The compiled form is saved to disk in the jit_path directory and control returns to the Load phase. This may sound a lot like the way HTML::Template's cache mode works but there are some significant differences: o The compilation phase takes a long time. Depending on your system it might take several seconds to compile a large template. o The resulting compiled template is much faster than a normal cached template. My benchmarks show HTML::Template::JIT, with a precompiled template, performing 4 to 8 times faster than HTML::Template in cache mode. o The resulting compiled template should use less memory than a normal cached template. Also, if all your templates are already compiled then you don't even have to load HTML::Template to use the templates! USAGE
Usage is the same as normal HTML::Template usage with a few addition new() options. The new options are: jit_path This is the path that the module will use to store compiled modules. It needs to be both readable and writeable. This directory will slowly grow over time as templates are changed and recompiled so you might want to periodically clean it out. HTML::Template::JIT might get better at cleaning-up after itself in a future version. no_compile This option tells the module to never compile templates. If it can't find a compiled version of a template then it croak()s rather than load HTML::Template::JIT::Compiler. You might want to use this option if you've precompiled your templates and want to make sure your users are never subjected to the lag of a compiler run. jit_debug Spits out a bunch of obscure debugging on STDERR. Note that you'll need to have a working version of the "indent" utility in your path to use this option. HTML::Template::JIT uses "indent" to make generated C code readable. print_to_stdout A special version of the HTML::Template print_to option is available to print output to stdout rather than accumulating in a variable. Set this option to 1 and output() will print the template contents directly to STDOUT. Defaults to 0. NOTE: Using print_to_stdout will result in significant memory savings for large templates. However my testing shows a slight slowdown in overall performance compared to normal HTML::Template::JIT usage. CAVEATS
This version is rather limited. It doesn't support the following options: cache (all modes) associate print_to scalarref (and friends) arrayref (and friends) die_on_bad_params Included files are not checked for changes when checking a compiled template for freshness. CODE-ref params are not supported. The query() method is not supported. It's not as fast as it could be - I'd like to see it reach somewhere around 10x faster than normal HTML::Template. I wouldn't expect this module to work with UTF-8 unless your C compiler will accept UTF-8 inside C strings. I think that would be a violation of the C standard, so I think I need to do some work here instead. As development progresses I hope to eventually address all of these limitations. BUGS
When you find a bug join the mailing list and tell us about it. You can join the HTML::Template mailing-list by visiting: http://lists.sourceforge.net/lists/listinfo/html-template-users Of course, you can still email me directly (sam@tregar.com) with bugs, but I reserve the right to forward bug reports to the mailing list. When submitting bug reports, be sure to include full details, including the VERSION of the module, a test script and a test template demonstrating the problem! AUTHOR
Sam Tregar <sam@tregar.com> LICENSE
HTML::Template::JIT : Just-in-time compiler for HTML::Template Copyright (C) 2001 Sam Tregar (sam@tregar.com) This module is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this module. This program 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 either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this module, in the file ARTISTIC. If not, I'll be glad to provide one. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA perl v5.12.1 2005-12-22 JIT(3)
All times are GMT -4. The time now is 12:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy