Menu

ld: main.o: relocation R_X86_64_PC32 against undefined hidden symbol `IID_IClassFactory' can not be used when making a shared object

Help
2018-08-17
2018-08-17
  • Dominique Michel

    When compiling wineasio on gentoo amd64, I get the following error:

    gcc -c -I. -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows    -g -O2 -D__WINESRC__ -DNATIVE_INT64 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o regsvr.o regsvr.c
    winegcc -shared wineasio.dll.spec -mnocygwin -L/usr/lib/wine -L/usr/lib -o wineasio.dll.so asio.o main.o regsvr.o     -ljack  -lodbc32 -lole32 -lwinmm -luuid
    main.o: In function `DllGetClassObject':
    /var/tmp/portage/app-emulation/wineasio-9999/work/wineasio-9999/main.c:134: undefined reference to `IID_IClassFactory'
    /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: relocation R_X86_64_PC32 against undefined hidden symbol `IID_IClassFactory' can not be used when making a shared object
    /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status
    winegcc: x86_64-pc-linux-gnu-gcc failed
    make: *** [Makefile64:113: wineasio.dll.so] Error 2
    

    I find a wineasio fork on github which compile fine: https://github.com/Jajcus/wineasio

     
  • Dominique Michel

    That fork compile only with the 64 bits version.

     
  • Dominique Michel

    I get the 32 bits version to compile by adding "-L/usr/lib32/${WINE_FLAVOR_INSTALLED}/wine -L/usr/lib32/${WINE_FLAVOR_INSTALLED}" after -mnocygwin in the linker flags in Makefile.

    Currently with the 64 bits distribution,s you cannot rely on /usr/lib, and with the different wine flavors, you cannot rely on /usr/lib[32|64]/wine either.

     

    Last edit: Dominique Michel 2018-08-17

Log in to post a comment.

MongoDB Logo MongoDB