On Tue, Mar 25, 2008 at 10:30:18PM +0300, panov@dec1.sinp.msu.ru wrote: > 48 #if defined(G__ANSI) || defined(G__ANSIHEADER) > 49 int memcmp(const void *region1,const void *region2,size_t count); > 50 void* memcpy(void *region1,const void *region2,size_t n); > 51 #elif defined(_AIX) > > Здесь все ясно. В gcc-4.1 Альтлинукса определен лишний макрос > 'memcpy', который пытается раскрыться где не надо. Лишний ли? > g++ -m32 -O2 -o bin/cint cint/main/cppmain.o \ > -Llib -lCint -lm -ldl -rdynamic > lib/libCint.so: undefined reference to `dlsym' > lib/libCint.so: undefined reference to `dlerror' > lib/libCint.so: undefined reference to `dlopen' > lib/libCint.so: undefined reference to `dlclose' lib/libCint.so не слинкована с -ldl > Это уже хуже. Не извелекаются функции Это не так. > из библиотеки libltdl, хотя Нет в libltdl таких функций. > тестовый пример с командной строкой > g++ -m32 -O2 -rdynamic -lltdl Test.c: > > // Test.c > #include > int main() > { > dlopen("Test", 0); dlerror(); > return 0; > } > > и получил сообщения об ошибках: > > In function `main': > Test.c:(.text+0x25): undefined reference to `dlopen' > Test.c:(.text+0x2a): undefined reference to `dlerror' С включенной у нас по умолчанию опцией --as-needed библиотеки надо указывать после исходных/объектных файлов, которые их используют. Т.е. g++ -m32 -O2 -rdynamic Test.c -lltdl -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(8): Единственная из установленных у меня Сизифовских fsck, которая не завершается аварийно при вызове с такими параметрами, это fsck.xfs. Она, правда, никогда не завершается аварийно, так как по определению ничего не делает. -- seriv in #5194