On Thursday 02 February 2012 18:12:31 Kenneth Heafield wrote:
> Hi,
> 
> Interesting.  See if my recent push 0270d61 helps.  If that doesn't fix
> it, open up lm/Jamfile and edit:
> 
> exe query : ngram_query.cc kenlm ;
> exe build_binary : build_binary.cc kenlm ;
> 
> changing them to:
> 
> exe query : ngram_query.cc kenlm ../util//kenutil ;
> exe build_binary : build_binary.cc kenlm ../util//kenutil ;
> 
> Curiously, we have the same gcc version, so I'm not sure why mine worked
> without this.
> 

Your commit fixed it, thank you! What did you do, for my information? before I 
sent this email I tried changing the the lines you mentioned to 

exe query : ngram_query.cc kenlm kenutil ;
exe build_binary : build_binary.cc kenlm kenutil ;

with no luck of course


> With regard to headers, we could install them by appending these lines
> to Jamroot:
> 
> includedir = [ option.get "includedir" : $(prefix)/include ] ;
> 
> install prefix-header :
>   [ glob-tree *.h *.hh : jam-files dist ] :
>   <location>$(includedir) <install-source-root>. ;
> 
> But the issue is that the headers are bad at finding themselves i.e. the
> moses/src directory expects to find everything relative to that path.  I
> guess we could move them up like so:
> 
> install prefix-header :
>   [ glob-tree *.h *.hh : jam-files dist ] :
>   <location>$(includedir) <install-source-root>moses/src ;
> 
> But I don't want to pollute a system's top-level headers with every
> moses/src header.

I'm not familiar with bjam so I don't really understand what's happening 
there... Maybe we could create some sort of "public headers list"? Or just put 
every header in $(includedir)/moses so that the system level directory is not 
polluted, and one would just have to add -I$(includedir)/moses to one's 
compile flags in order to use Moses API? otherwise, what would you suggest to 
be able to use moses libraries? -I/path/to/mosesdecoder/moses/src?

regards,

> 
> Sorry for the build barf,
> 
> Kenneth
> 
> On 02/02/2012 05:36 PM, Sylvain Raybaud wrote:
> > Good evening all
> > 
> >   I recently pulled the latest version of moses using git. I ran into
> >   some> 
> > problems during compilation and installation. Using jam, I got many such
> > messages (more than a dozen I think):
> > 
> > gcc.link /home/sylvain/loria/mosesdecoder/lm/query
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/b
> > in/ld:
> > lm/bin/gcc-4.5.3/release/debug-symbols-on/threading-multi/ngram_query.o
> > : undefined reference to symbol 'util::scoped_memory::reset(void*,
> > unsigned long, util::scoped_memory::Alloc)'
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/b
> > in/ld: note: 'util::scoped_memory::reset(void*, unsigned long,
> > util::scoped_memory::Alloc)' is defined in DSO
> > /home/sylvain/loria/mosesdecoder/util/bin/gcc-4.5.3/release/debug-symbol
> > s- on/threading-multi/libkenutil.so so try adding it to the linker
> > command line
> > /home/sylvain/loria/mosesdecoder/util/bin/gcc-4.5.3/release/debug-symbo
> > ls- on/threading-multi/libkenutil.so: could not read symbols: Invalid
> > operation collect2: ld returned 1 exit status
> > 
> >     "g++"  -Wl,-R -Wl,"/home/sylvain/loria/mosesdecoder/lm"
> >     -Wl,-rpath-link -> 
> > Wl,"/home/sylvain/loria/mosesdecoder/lm/bin/gcc-4.5.3/release/debug-symb
> > ols- on/threading-multi" -Wl,-rpath-link -
> > Wl,"/home/sylvain/loria/mosesdecoder/util/bin/gcc-4.5.3/release/debug-sy
> > mbols- on/threading-multi" -o
> > "/home/sylvain/loria/mosesdecoder/lm/query" -Wl,-- start-group
> > "lm/bin/gcc-4.5.3/release/debug-symbols-on/threading-
> > multi/ngram_query.o"
> > "lm/bin/gcc-4.5.3/release/debug-symbols-on/threading-
> > multi/libkenlm.so"  -Wl,-Bstatic  -Wl,-Bdynamic -lboost_thread-mt -lrt
> > -Wl,-- end-group -g -pthread
> > 
> > If I run the command manually and just add -lkenutil at the ends, it
> > links just fine. Am I missing something here?
> > 
> > I'm running into another problem wich I've been so far unable to solve:
> > I'm developping a software which makes use of Moses library. With
> > previous version, I used to include many headers (for example
> > Sentence.h) which I could install, as far as I remember, wherever
> > suited my needs (/usr/local/include in my case). Now, using bjam
> > --prefix=/usr/local link=shared, I've been able to install DSO into
> > /usr/local/lib, but could find a way to install headers. Do I have to
> > specify -I/path/to/mosesdecoder/moses/src etc. in my software CFLAGS?
> > or is there a proper way to install headers? it seems rather strange to
> > me that I can install DSO but not headers as it seems quite useless...
> > 
> > best regards,
> 
> _______________________________________________
> Moses-support mailing list
> Moses-support@mit.edu
> http://mailman.mit.edu/mailman/listinfo/moses-support
_______________________________________________
Moses-support mailing list
Moses-support@mit.edu
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to