On Fri, Jul 16, 2010 at 11:32:36AM +0800, Liang Guo wrote: > Hi, ALL, > > My package(sunpinyin) is compiled with g++ 4.4, and it's symbols file > is generated by dpkg-gensymbols, when I switch g++ to 4.3, and compile > package, I get the following error: (snip) > > dh_makeshlibs: dpkg-gensymbols -plibsunpinyin3 > -Idebian/libsunpinyin3.symbols -Pdebian/libsunpinyin3 returned exit > code 1 > make: *** [binary-arch] 错误 1 > dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status > 2 > > Does it mean when using different compiler, the SAME library source > code will generate different symbols? If it does, which compiler > should I use to compile my packages and to generate symbols? How > should I handle this problem ?
The question you have to ask yourself is, are these symbols part of the public API? and probably more importantly, where are they defined? I have seen, in the past, many situations where optimization level would influence what symbols are exported or not. And different versions of g++ may optimize things differently. This can, for example, occur with code in header files (which can happen in C++ classes definition). Mike -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

