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