The X! search engine project

X! Search Engine Development

  X! Tandem Linux FAQ
  1. I get the following error when I try to compile Tandem on Solaris Linux: mreport.cpp:252: `__int64_t' undeclared (first use this function)
  2. I get a segmentation fault when running Tandem on Gentoo Linux.
  3. I get a segmentation fault when running Tandem on Mandrake Linux.
  4. I get the error: 'ld: can't locate file for: -lexpat' when compiling on OSX.

1. I get the following error when I try to compile Tandem on Solaris: mreport.cpp:252: `__int64_t' undeclared (first use this function)

Add the following lines to the file named stdafx.h

	#define Solaris

	#ifdef Solaris
	    #define __inline__ inline
	    #define __int64_t int64_t
	#endif
							


2. I get a segmentation fault when running Tandem on Gentoo Linux

This error has to do with how the threads are handled on Gentoo. Edit tandem.cpp at approxmately line 287 removing the lines marked with a "-" and replacing with the lines marked with a "+".

	 #ifdef MSVC
	 	DWORD wait = WaitForMultipleObjects(dCount,pHandle,true,INFINITE);
	 #else
	-	void **vp;
	+	void *vp;
	 	int x=0;
	 	int wait;
	 	for(x=0;x<dCount;x++){
	-		wait = pthread_join(pThreads[x],vp);
	+		wait = pthread_join(pThreads[x],&vp);
	 	}
	 #endif
							


3. I get a segmentation fault when running Tandem on Mandrake Linux.

Edit mspectrum.h at approximately line 178, removing the line marked with a "-" and replacing with the line marked with a "+":

- m_tCurrentSequence = (size_t)0xffffffffff;
+ m_tCurrentSequence = (size_t)pow(2.0,31.0);
							


4. I get the error: 'ld: can't locate file for: -lexpat' when compiling on OSX

It looks like the linker isn't finding the expat libs. Try adding the path to the expat lib files on the LDFLAGS line of the Makefile:
LDFLAGS = -lpthread -L/usr/lib -L/path/to/libs -lm -lexpat

Copyright © 2004-2011, The Global Proteome Machine Organization