I hope someone can give me clues about what's screwing up the compilation of
a molecular docking app I'm trying to assemble for my classes... It is
supposed to compile on a number of *nix platforms including Linux, but my
attempts die at the linking stage.

I do not program (OK, I learned APL in high school 30 years ago and did some
assembly and Basic stuff in college), but I _am_ learning the hard way about
how parts of the process work.

I have already written to a big computational chemistry list about this, but
the help offered provided no answer or fix.  The research group from which
this app comes is not being particularly helpful (i.e. they aren't
responding)--they are quite explicit in their docs about their group being
the last resort for problems.  (There is no other app. like this, so...)
Additionally, I don't know any local guru familiar with Unix. My school is a
Windoze institution... :-( 

I've listed the errors encountered below along with snippets of the Makefile
and a library listing (nm) for the apparent culprit get_atom_type.  The
various object files compile with only a couple of sporadic warnings about
variable type conversions.

Can someone suggest places to look for the cause of this?  Is there other
information I could find to help?  I have tried the nm command with the
three functions referenced below, and the only consistent difference I can
see is the lack of a bunch of alphanumerics after the name shown on the last
line of that listing.

Any help would be greatly appreciated!

Kenward

---snippet of Makefile---
...
#
# C++ compiler
#

# AutoDock 3.0 Makefile GNU Linux -- START
CC        = g++
LIB       = -lm
CSTD      = -DHPPA $(PROF) $(DBUG) $(WARN)
CFLAGS    = $(OPT)
OPTLEVEL  = -O3
OPT       = $(CSTD) $(OPTLEVEL)
OLIMIT    = $(OPT)
LINKOPT   = $(OPT)
LINK      = $(LINKOPT)
LINT      = lint
LINTFLAGS = -DHPPA $(LIB) -c
DBUG      = -DNDEBUG # No debugging and no assert code
PROF      = # No profiling
WARN      = # Default warning level
# AutoDock 3.0 Makefile GNU Linux -- END

autodock3 : main.o $(ADLIB)
...

---errors in compiling messages---I don't believe the warnings are
        important?  Sorry about the line wrap...

...
g++ -DHPPA  -DNDEBUG   -O3 -c getpdbcrds.cc
g++ -DHPPA  -DNDEBUG   -O3 -DCHECK_ISNAN -c gs.cc -o gs.o
gs.cc: In method `genetic_Algorithm::Genetic_Algorithm(EvalMode,
Selection_Mode, Xover_Mode, Worst_Mode, int, float, float, int, unsigned
int, unsigned int)':
gs.cc:170: warning: assignment to `int' from `double'
gs.cc:170: warning: assignment to `int' from `double'
...

g++ -DHPPA  -DNDEBUG   -O3 -c ranlib.cc
ranlib.cc: In function `fourByteLong ignbin(long int, float)':
ranlib.cc:766: warning: assignment to `fourByteLong' from `float'
ranlib.cc:791: warning: assignment to `fourByteLong' from `float'
ranlib.cc:801: warning: assignment to `fourByteLong' from `float'
ranlib.cc:808: warning: assignment to `fourByteLong' from `double'
ranlib.cc:816: warning: assignment to `fourByteLong' from `double'
...

g++ -DHPPA  -DNDEBUG   -O3 -c trilinterp.cc
ar r libad.a analysis.o banner.o bestpdb.o call_glss.o call_gs.o call_ls.o
changeState.o check_header_float.o check_header_int.o check_header_line.o
cluster_analysis.o clmode.o cmdmode.o cnv_state_to_coords.o com.o
stateLibrary.o readfield.o readmap.o readPDBQ.o dpftypes.o eval.o
evaluate_energy.o gencau.o getrms.o get_atom_type.o getInitialState.o
getpdbcrds.o gs.o initautodock.o input_state.o investigate.o linpack.o ls.o
mapping.o minmeanmax.o mkNewState.o mkTorTree.o mkRandomState.o nonbonds.o
openfile.o output_state.o parse_com_line.o parse_dpf_line.o
parse_pdbq_line.o parse_trj_line.o print_2x.o print_atomic_energies.o
print_avsfld.o writeMolAsPDBQ.o writePDBQ.o writePDBQState.o print_rem.o
printdate.o printEnergies.o printhms.o prClusterHist.o prInitialState.o
prTorConList.o qmultiply.o qtransform.o quicksort.o ranlib.o rep.o scauchy.o
set_cmd_io_std.o setflags.o simanneal.o sort_enrg.o stop.o strindex.o
success.o summarizegrids.o support.o swap.o timesys.o timesyshms.o
torNorVec.o torsion.o usage.o weedbonds.o warn_bad_file.o eintcal.o
eintcalPrint.o intnbtable.o nbe.o trilinterp.o
echo . '  on  '`date`', using '`hostname` >> LATEST_MAKE
echo 'Flags: 'g++ -DHPPA  -DNDEBUG   -O3 -DNOSQRT -L. -lad -lm >>
LATEST_MAKE
g++ -DHPPA  -DNDEBUG   -O3 -DNOSQRT -o autodock3 main.o -L. -lad -lm
./libad.a(clmode.o): In function `clmode(char *, int, float, char *, long,
tms,
char, char *, float (*)[2], float *, char, char *)':
clmode.o(.text+0x640): undefined reference to `get_atom_type(char *, char
*)'
./libad.a(cmdmode.o): In function `cmdmode(int, long, tms, float, float,
float,
float, float, float, float, float (*)[127][127][7], float (*)[5][5], float,
float (*)[2], int (*)[2047], int, int, int (*)[1], char (*)[127], float
(*)[2], char *, int *, float *, char, float *, char *, float, int)':
cmdmode.o(.text+0x48f): undefined reference to `get_atom_type(char *, char
*)'
./libad.a(readPDBQ.o): In function `readPDBQ(char *, char *, int, int *,
float (*)[2], float *, char *, int *, char (*)[4], char *,
_ciT0T3T3T5T5T3T3PA2047_iT4
(*)[1], int *, int *, int (*)[1], long, tms, char *, int *)':
readPDBQ.o(.text+0x465): undefined reference to `get_atom_type(char *, char
*)'
collect2: ld returned 1 exit status
make: *** [autodock3] Error 1

---end of run--next is a listing by nm of libad.a for get_atom_type

daddy:/home/local/src/autodock/dist305/src/autodock# nm libad.a|grep -i
get_atom_type
         U get_atom_type__FPcT0
         U get_atom_type__FPcT0
         U get_atom_type__FPcT0
get_atom_type.o:
00000000 T get_atom_type



-- 
It is not so very important for a person to learn facts.  For that he
doesn't really need a college education, for he can learn them from
books.  The value of an education in a liberal arts college is not the
learning of many facts but the training of the mind to thinking--something
that cannot be learned from books.     Albert Einstein

Reply via email to