[Bioclusters] mpiBlast OS X

Aaron Darling bioclusters@bioinformatics.org
Thu, 30 Sep 2004 16:49:48 -0500


Yes, looks like something wrong with the build environment.  Looks like 
it's not linking to the c++ library.  Usually the GNU standard c++ 
library can be linked with -lstdc++.  You could either add that to the 
CXXFLAGS environment variable and reconfigure or just copy the link 
command, add -lstdc++, and run it from within the src dir.  In the past 
we've only tested releases on Linux and Windows, sounds like that needs 
to change :)

-Aaron

Nick Brockner wrote:

> Ok, now that getopt() is out of the way it compiles, but then when it 
> goes to link I get this garbage:
>
> ld: Undefined symbols:
> std::basic_ostream<char, std::char_traits<char> 
> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& 
> (*)(std::basic_ostream<char, std::char_traits<char> >&))
> std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
> std::basic_ostream<char, std::char_traits<char> >::operator<<(long)
> std::basic_ostream<char, std::char_traits<char> >::operator<<(unsigned 
> long)
> std::basic_string<char, std::char_traits<char>, std::allocator<char> 
> >::_Rep::_M_destroy(std::allocator<char> const&)
> .
> .
> .
>
> I think this has nothing to do with the mpiBlast code, and has 
> something to do with Apple's build environment.  Difficult build, this 
> is.
>
> Thanks,
>
> -Nick Brockner
> On Sep 30, 2004, at 3:35 PM, Aaron Darling wrote:
>
>> This happens on OS X, Solaris, and AIX because our getopt() detection 
>> was broken in 1.2.1.  A quick fix is to comment out line 147 of 
>> mpiBLAST-1.2.1/src/getopt.h
>> e.g. change:
>> extern int getopt ();
>> to:
>> /* extern int getopt (); */
>>
>> -Aaron
>>
>> Nick Brockner wrote:
>>
>>> Hi Aaron,
>>>
>>> Thanks for the pointer.  Using the Oct. 2003 ncbi toolkit worked for 
>>> the previous error, but now I have a more sinister looking error:
>>>
>>> In file included from /usr/include/pthread.h:61,
>>>                  from 
>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/gthr-default.h:37,
>>>                  from 
>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/gthr.h:98,
>>>                  from 
>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/c++io.h:37,
>>>                  from /usr/include/gcc/darwin/3.3/c++/bits/fpos.h:44,
>>>                  from /usr/include/gcc/darwin/3.3/c++/iosfwd:49,
>>>                  from 
>>> /usr/include/gcc/darwin/3.3/c++/bits/stl_algobase.h:70,
>>>                  from /usr/include/gcc/darwin/3.3/c++/algorithm:66,
>>>                  from mpiblast.cpp:86:
>>> /usr/include/unistd.h:183: error: declaration of C function `int 
>>> getopt(int,
>>>    char* const*, const char*)' conflicts with
>>> getopt.h:147: error: previous declaration `int getopt()' here
>>> In file included from file_util.hpp:58,
>>>                  from mpiblast.hpp:71,
>>>                  from mpiblast.cpp:88:
>>>
>>>
>>> Has anyone seen this before? Looks OS X specific.
>>>
>>> Thanks,
>>>
>>> -Nick Brockner
>>>
>>> On Sep 30, 2004, at 2:51 PM, Aaron Darling wrote:
>>>
>>>> Assuming you are using mpiBLAST 1.2.1, you need to use the October 
>>>> 2003 release of the NCBI Toolbox from here:
>>>> ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/old/
>>>>
>>>> Each version of mpiBLAST is designed to compile against a specific 
>>>> version of the NCBI Toolbox, as mentioned on our download page here:
>>>>
>>>> http://mpiblast.lanl.gov/download.html
>>>>
>>>> Later toolbox releases changed the API to BlastMakeMultQueries and 
>>>> BXMLPrintOutput, which is why you are seeing those build errors.
>>>>
>>>> Regards,
>>>> -Aaron
>>>>
>>>> Nick Brockner wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I think I am missing something here, but attempting to compile 
>>>>> mpiBlast gets me the following:
>>>>>
>>>>> blast_hooks.c: In function `getFakeBioseq':
>>>>> blast_hooks.c:785: error: too few arguments to function 
>>>>> `BlastMakeMultQueries'
>>>>> blast_hooks.c: In function `outputResults':
>>>>> blast_hooks.c:1334: error: too few arguments to function 
>>>>> `BXMLPrintOutput'
>>>>> blast_hooks.c:1345: error: too few arguments to function 
>>>>> `BXMLPrintOutput'
>>>>> blast_hooks.c:1493: error: too few arguments to function 
>>>>> `BXMLPrintOutput'
>>>>> blast_hooks.c:1498: error: too few arguments to function 
>>>>> `BXMLPrintOutput'
>>>>> mpicc: No such file or directory
>>>>> make[1]: *** [mpiblast-blast_hooks.o] Error 1
>>>>> make: *** [all-recursive] Error 1
>>>>>
>>>>>
>>>>> My setup:
>>>>> OS X Server 10.3.5
>>>>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)
>>>>> NCBI toolkit installed
>>>>> LAM-MPI version 7.0.6
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -Nick Brockner
>>>>>
>>>>> _______________________________________________
>>>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>>
>>>
>>>
>>> _______________________________________________
>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>
>>
>> _______________________________________________
>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>
>>
>
> _______________________________________________
> Bioclusters maillist  -  Bioclusters@bioinformatics.org
> https://bioinformatics.org/mailman/listinfo/bioclusters