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
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
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
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
Hi,
I have AIX 5.3 and my code is written in proc . i am getting following error during compilation
Please help?////.....
[H[2J:-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
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
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
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
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
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
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
LEARN ABOUT LINUX
mdc2_final
mdc2(3SSL) OpenSSL mdc2(3SSL)
NAME
MDC2, MDC2_Init, MDC2_Update, MDC2_Final - MDC2 hash function
SYNOPSIS
#include <openssl/mdc2.h>
unsigned char *MDC2(const unsigned char *d, unsigned long n,
unsigned char *md);
int MDC2_Init(MDC2_CTX *c);
int MDC2_Update(MDC2_CTX *c, const unsigned char *data,
unsigned long len);
int MDC2_Final(unsigned char *md, MDC2_CTX *c);
DESCRIPTION
MDC2 is a method to construct hash functions with 128 bit output from block ciphers. These functions are an implementation of MDC2 with
DES.
MDC2() computes the MDC2 message digest of the n bytes at d and places it in md (which must have space for MDC2_DIGEST_LENGTH == 16 bytes
of output). If md is NULL, the digest is placed in a static array.
The following functions may be used if the message is not completely stored in memory:
MDC2_Init() initializes a MDC2_CTX structure.
MDC2_Update() can be called repeatedly with chunks of the message to be hashed (len bytes at data).
MDC2_Final() places the message digest in md, which must have space for MDC2_DIGEST_LENGTH == 16 bytes of output, and erases the MDC2_CTX.
Applications should use the higher level functions EVP_DigestInit(3) etc. instead of calling the hash functions directly.
RETURN VALUES
MDC2() returns a pointer to the hash value.
MDC2_Init(), MDC2_Update() and MDC2_Final() return 1 for success, 0 otherwise.
CONFORMING TO
ISO/IEC 10118-2, with DES
SEE ALSO
sha(3), EVP_DigestInit(3)
HISTORY
MDC2(), MDC2_Init(), MDC2_Update() and MDC2_Final() are available since SSLeay 0.8.
1.0.0e 2006-10-27 mdc2(3SSL)