Kotlin/Native cInterop or konanc which one makes problem? - linux

gtk3.def
headers = gtk/gtk.h
headerFilter = gtk/* gobject/* gio/*
build.sh
IPREFIX_linux=-I/usr/include
LINKER_ARGS_linux="-L/usr/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -lglib-2.0 -lgio-2.0 -lgobject-2.0 -latk-1.0 -lpango-1.0 -lgdk_pixbuf-2.0 -lharfbuzz -lcairo -lgtk-3"
if [ x$TARGET == x ]; then
case "$OSTYPE" in
darwin*) TARGET=macbook ;;
linux*) TARGET=linux ;;
*) echo "unknown: $OSTYPE" && exit 1;;
esac
fi
var=IPREFIX_${TARGET}
IPREFIX="${!var}"
var=LINKER_ARGS_${TARGET}
LINKER_ARGS=${!var}
var=COMPILER_ARGS_${TARGET}
COMPILER_ARGS=${!var} # add -opt for an optimized build.
if [ ! -f $DIR/gtk3 ]; then
echo "Generating GTK stubs (once), may take few mins depending on the hardware..."
cinterop -compiler-options $IPREFIX/atk-1.0 -compiler-options $IPREFIX/gio-unix-2.0 -compiler-options $IPREFIX/gdk-pixbuf-2.0 -compiler-options \
$IPREFIX/cairo -compiler-options -I/opt/local/lib/glib-2.0/include \
-compiler-options -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -compiler-options $IPREFIX/gtk-3.0 \
-compiler-options $IPREFIX/glib-2.0 -def $DIR/gtk3.def -compiler-options $IPREFIX/harfbuzz \
-compiler-options $IPREFIX/pango-1.0 -target $TARGET -o $DIR/gtk3 || exit 1
**// the cinterop command makes gtk3.klib which is ok! but the problem is next command.**
*konanc -target $TARGET Application.kt -l $DIR/gtk3 -linker-option "$LINKER_ARGS" -e "sample.gtk.main" -o $DIR/Main.kexe || exit 1*
**// I tried konanc instead of kotlin-native but the error same like below.
// also change target linux instead of linux_x64**
**// Application.kt starts sentence package sample.gtk**
error
/home/bob-kim/.konan/dependencies/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2/x86_64-unknown-linux-gnu/bin/ld.gold invocation reported errors
The /home/bob-kim/.konan/dependencies/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2/x86_64-unknown-linux-gnu/bin/ld.gold command returned non-zero exit code: 1.
output:
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_g_signal_connect_data_wrapper194: error: undefined reference to 'g_signal_connect_data'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_g_object_unref_wrapper279: error: undefined reference to 'g_object_unref'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_g_application_run_wrapper593: error: undefined reference to 'g_application_run'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_widget_destroy_wrapper3089: error: undefined reference to 'gtk_widget_destroy'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_widget_show_all_wrapper3095: error: undefined reference to 'gtk_widget_show_all'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_application_new_wrapper3338: error: undefined reference to 'gtk_application_new'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_container_add_wrapper3367: error: undefined reference to 'gtk_container_add'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_window_set_title_wrapper3415: error: undefined reference to 'gtk_window_set_title'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_window_set_default_size_wrapper3510: error: undefined reference to 'gtk_window_set_default_size'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_application_window_new_wrapper4563: error: undefined reference to 'gtk_application_window_new'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_button_box_new_wrapper4612: error: undefined reference to 'gtk_button_box_new'
/tmp/konan_temp12575366956155761859/result.o:out:function gtk3_gtk_button_new_with_label_wrapper4669: error: undefined reference to 'gtk_button_new_with_label'

Related

emsdk compilation. what flags do i needfor sucsess?

Here are my compiler logs I don't quite understand what to do
$ emmake make CFLAGS="-fstack-protector-strong" LDFLAGS="-fstack-protector-strong"
make: make CFLAGS=-fstack-protector-strong LDFLAGS=-fstack-protector-strong
emcc -fstack-protector-strong -fstack-protector-strong -o mkp224o.tmp main.c.o worker.c.o yaml.c.o vec.c.o cpucount.c.o base32_to.c.o base32_from.c.o base64_to.c.o base64_from.c.o ioutil.c.o keccak.c.o -lpthread -lsodium && mv mkp224o.tmp mkp224o
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
wasm-ld-13: error: /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a(libsodium_la-hash_sha256_cp.o): undefined symbol: __stack_chk_guard
emcc: error: '/usr/bin/wasm-ld-13 -o mkp224o.wasm main.c.o worker.c.o yaml.c.o vec.c.o cpucount.c.o base32_to.c.o base32_from.c.o base64_to.c.o base64_from.c.o ioutil.c.o keccak.c.o /usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten/libsodium.a -L/usr/share/emscripten/cache/sysroot/lib/wasm32-emscripten -lGL -lal -lhtml5 -lstubs-debug -lnoexit -lc-debug -ldlmalloc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --strip-debug --export-if-defined=main --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__stdio_exit --export=emscripten_stack_get_end --export=emscripten_stack_get_free --export=emscripten_stack_get_base --export=emscripten_stack_init --export=stackSave --export=stackRestore --export=stackAlloc --export=__wasm_call_ctors --export=__errno_location --export=malloc --export=free --export=emscripten_main_thread_process_queued_calls --export-table -z stack-size=5242880 --initial-memory=16777216 --no-entry --max-memory=16777216 --global-base=1024' failed (returned 1)
make: *** [GNUmakefile:99: mkp224o] Error 1
emmake: error: 'make CFLAGS=-fstack-protector-strong LDFLAGS=-fstack-protector-strong' failed (returned 2)
The problem is solved, but I did not track at what step it was done, since I walked in circles many times.
From the moment it didn't work for me, I did:
-installed bison and gawk
sudo apt install bison gawk
-copied the "c++" folder from the Include folder to the /usr/share/emscripten/cache/sysroot/include directory.
switched to providing python, with the commands:
python3 '/usr/share/emscripten/emconfigure.py' ./configure --prefix="$(pwd)/install"
python3 '/usr/share/emscripten/emmake.py' make clean
python3 '/usr/share/emscripten/emmake.py' make
when code errors occur, set
sudo apt install python3-pysodium
after I solved a couple of compilation errors (from a very long list of errors) and corrected by type in terminal:
emcc -Wall -Wno-error -Wextra -Wno-unused-function -Wmissing-prototypes -Wstrict-prototypes -x c++ -g -O2 -lm -ldl -Wall -Wpointer-arith -finline-functions -ffast-math -DED25519_donna -fPIE -DSTATISTICS -DPASSPHRASE -DVERSION='"unknown"' -D'CRYPTO_NAMESPACETOP=crypto_sign_ed25519_donna' -D'_CRYPTO_NAMESPACETOP=crypto_sign_ed25519_donna' -D'CRYPTO_NAMESPACE(name)=crypto_sign_ed25519_donna##name' -D'_CRYPTO_NAMESPACE(name)=crypto_sign_ed25519_donna ##name' -c -o main.c.o.tmp main.c && mv main.c.o.tmp main.c.o
and then finished compiling
python3 '/usr/share/emscripten/emmake.py' make

ifort compile executable linux undefined reference to

I have the following makefile
#makefile for building Linux 64b executable
FC = ifort
MPPD = -DAUTODOUBLE -4R8 -4I8
FLAGS = -safe_cray_ptr -assume byterecl,buffered_io,protect_parens -warn nousage -zero -ftz -fp-model precise -mP2OPT_hpo_dist_factor=21 -diag-disable 10212,10010 -fimf-arch-consistency=true -traceback -pad -DLINUX -DIFORT -DNET_SECURITY -DADDR64 -DINTEL -DXEON64 -DFCC80 -DTIMER=cycle_time -DSSE2 -DOVERRIDE -DMPP -DMPICH -DHPMPI -DAUTODOUBLE -DNEWIO -DEXTENDED -DLSTCODE -DENABLE_HASH3 -DFFTW -DZMF2 -DUSES_CXX -DPFEM -DSPRNG -DUSE_SPRNG -DUSES_CPP -DPTHREADS -nodps -i8 -r8 -DSPRNG_MPI -DUSE_MPI -DINTEL -DAdd_ -xSSE2 -align array16byte -fPIC -O2
TARGET = mppdyna
MPICH_LIB = /opt/intel/impi/4.1.3.048/mic/lib/libmpi.so
MPICH_INC = /opt/intel/impi/4.1.3.048/mic/include/
FFLAGS = $(FLAGS) -I. -I$(MPICH_INC) -I/opt/ibm/platform_mpi/include/
LINKLIBS = libgcrypt.so.20 libgpg-error.so.0 libpthread.so.0 libtriboformplugin.so
OBJS = dyn21.o dyn21b.o couple2other_user.o triboform_lsdyna_plugin.o
$(TARGET): $(OBJS)
$(FC) -w -o mppdyna.out $(OBJS) $(LINKLIBS)
init_dyn21.o: init_dyn21.f nhisparm.inc
$(FC) -c $(FFLAGS) init_dyn21.f
dyn21.o: dyn21.f nhisparm.inc
$(FC) -c $(FFLAGS) dyn21.f
dyn21b.o: dyn21b.f nhisparm.inc
$(FC) -c $(FFLAGS) dyn21b.f
couple2other_user.o: couple2other_user.f
$(FC) -c $(FFLAGS) couple2other_user.f
dynrfn_user.o: dynrfn_user.f
$(FC) -c $(FFLAGS) dynrfn_user.f
triboform_lsdyna_plugin.o: triboform_lsdyna_plugin.f
$(FC) -c $(FFLAGS) triboform_lsdyna_plugin.f
clean:
-#rm mppdyna 2>/dev/null || :
rm -rf *.o
And it gives me the following error message
...
...
dyn21b.f:(.text+0x90cd2): undefined reference to `adios_'
dyn21b.o: In function `umat48c_':
dyn21b.f:(.text+0x90dc2): undefined reference to `adios_'
dyn21b.o:dyn21b.f:(.text+0x90eb2): more undefined references to `adios_' follow
dyn21b.o: In function `thumat12_':
dyn21b.f:(.text+0x961ed): undefined reference to `crvval_'
dyn21b.f:(.text+0x96260): undefined reference to `crvval_'
dyn21b.o: In function `thumat13_':
dyn21b.f:(.text+0x963bc): undefined reference to `adios_'
...
...
libtriboformplugin.so: undefined reference to `do_license_check'
libtriboformplugin.so: undefined reference to `write_processing_file'
libtriboformplugin.so: undefined reference to `strerror_s'
libtriboformplugin.so: undefined reference to `fopen_s'
libtriboformplugin.so: undefined reference to `freopen_s'
make: *** [mppdyna] Error 1
I'm relatively new with ifort, can anyone point to me where my fault is?
which ifort points to /opt/intel/composer_xe_2013_sp1.2.144/bin/intel64/ifort and I'm also using platform_mpi.
I've created libtriboformplugin.so with another makefile (succesfully) that's from a C project.

Error while building OpenSSL for android using ndk

I am trying to build openSSL for android using ndk. I am using dockerFile concept. I have set few environment variables as per suggested in http://wiki.openssl.org/index.php/Android. Now I am getting following error:
make[2]: Entering directory `/Android/openssl/apps'
( :; LIBDEPS="${LIBDEPS:--L.. -lssl -L.. -lcrypto -ldl}"; LDCMD="${LDCMD:-arm-l
inux-androideabi-gcc}"; LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS -D_REENTRANT -DDSO
_DLFCN -DHAVE_DLFCN_H --static -Wa,--noexecstack -march=armv7-a -mandroid -I/And
roid/android-ndk-r10c/platforms/android-19/arch-arm/usr/include -B/Android/andro
id-ndk-r10c/platforms/android-19/arch-arm/usr/lib -O3 -fomit-frame-pointer -Wall
-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_AS
M -DAES_ASM -DBSAES_ASM -DGHASH_ASM}"; LIBPATH=`for x in $LIBDEPS; do echo $x; d
one | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/
g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:
=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd
.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o
ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o
s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.
o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o eng
ine.o ocsp.o prime.o ts.o srp.o ${LIBDEPS} )
/Android/toolchain-arm/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_globallookup: error: unde
fined reference to 'dlopen'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_globallookup: error: unde
fined reference to 'dlsym'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_globallookup: error: unde
fined reference to 'dlclose'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_bind_func: error: undefin
ed reference to 'dlsym'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_bind_func: error: undefin
ed reference to 'dlerror'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_bind_var: error: undefine
d reference to 'dlsym'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_bind_var: error: undefine
d reference to 'dlerror'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_load: error: undefined re
ference to 'dlopen'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_load: error: undefined re
ference to 'dlclose'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_load: error: undefined re
ference to 'dlerror'
../libcrypto.a(dso_dlfcn.o):dso_dlfcn.c:function dlfcn_unload: error: undefined
reference to 'dlclose'
collect2: error: ld returned 1 exit status
make[2]: Leaving directory `/Android/openssl/apps'
make[2]: *** [link_app.] Error 1
make[1]: *** [openssl] Error 2
make[1]: Leaving directory `/Android/openssl/apps'
make: *** [build_apps] Error 1
INFO[0135] The command [/bin/sh -c cd openssl && ./config --static no-ssl2 no-ss
l3 no-comp no-hw no-engine && make depend && make && ls -hs . && cp l
ibssl.a /Android/output] returned a non-zero code: 2
docker#boot2docker:/home/curl_ssl$
Do you have suggestions to resolve above error? I am not able to find what is reason behind such error.
Android has openssl already. Perhaps you do not need to compile them. Try answer from this question Compiling OpenSSL on Android

gsoap++ linking error

I wrote a soap-client with gsoap++ library. once i compiled this one as a stand-alone test app it was compiled fine, but when i try to compile these classes including in my project i get a lot of linking errors:
../common/UserGausClient/UserGausClient.o: In function `GAUS::SSLInit()':
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/UserGausClient.h:11: undefined reference to `soap_ssl_init'
../common/UserGausClient/soapC.o: In function `soap_faultdetail':
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:117: undefined reference to `soap_malloc'
../common/UserGausClient/soapC.o: In function `soap_getelement':
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:152: undefined reference to `soap_peek_element'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:154: undefined reference to `soap_lookup_type'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:155: undefined reference to `soap_lookup_type'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:215: undefined reference to `soap_match_tag'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:219: undefined reference to `soap_match_tag'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:223: undefined reference to `soap_match_tag'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:227: undefined reference to `soap_match_tag'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:231: undefined reference to `soap_match_tag'
../common/UserGausClient/soapC.o:/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:235: more undefined references to `soap_match_tag' follow
../common/UserGausClient/soapC.o: In function `soap_ignore_element(soap*)':
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:333: undefined reference to `soap_peek_element'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:337: undefined reference to `soap_match_tag'
/home/milo/src/pinmoney/src/registrator/../common/UserGausClient/soapC.cpp:354: undefined reference to `soap_element_end_in'
../common/UserGausClient/soapC.o: In function `soap_class_id_enter(soap*, char const*, void*, int, unsigned int, char const*, char const*)':
and so on. In Codeblocks it linking fined... Here is my Makefile:
CC=g++
RM=rm
CFLAGS=-c -g -Wall -DWITH_OPENSSL
LDFLAGS=-lpcrecpp -lpq -lcryptopp -lprotobuf -lrt -lgsoapssl++ -lssl -lcrypto -L/usr/lib/ -L/usr/local/lib/ -lgsoap
SOURCES=../common/PgConnectionManager.cpp \
../common/RSADecryptor.cpp \
../common/RSAEncryptor.cpp \
../common/RSAKeyGenerator.cpp \
../common/RSAKeyLoaderBase.cpp \
../common/RSAManager.cpp \
../common/TcpServer.cpp \
../common/UserGausClient/UserGausClient.cpp \
../common/UserGausClient/soapC.cpp \
../common/UserGausClient/soapuserBindingProxy.cpp \
../proto/BalanceHistory.pb.cc \
../proto/Bio.pb.cc \
../proto/ClientRegistration.pb.cc \
../proto/EmployeePermissions.pb.cc \
../proto/OperatorAuthentication.pb.cc \
../proto/Passport.pb.cc \
../proto/Ping.pb.cc \
../proto/SearchForBill.pb.cc \
../proto/UpdateClientData.pb.cc \
RequestDispatcher.cpp \
SQLStorage.cpp \
SessionManager.cpp \
main.cpp \
OBJECTS_SEARCHER=$(SOURCES:.cpp=.o)
OBJECTS=$(OBJECTS_SEARCHER:.cc=.o)
SEARCHER=registrator
INCLUDE=-I ../
all: $(SEARCHER)
$(SEARCHER): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $#
clean:
$(RM) -f $(OBJECTS)
.cpp.o:
$(CC) $(CFLAGS) $(INCLUDE) $< -o $#
I linked against all necessary libraries (-lgsoapssl++ -lssl -lcrypto) and I checked out requesting functions in these ones:
$ nm /usr/lib/libgsoapssl++.a | grep soap_begin_count
00018da0 T soap_begin_count
and there are in libraries. so, what a problem?
I believe you have to compile one of gSoap's stdsoap2.* files in your make. The generated soapC file depends on the core gSoap code.
One possible reason for this is the order that the libraries are specified to the linker, some linkers require that the libarary containing the definition of a function appears after the object or library that requires it. Try re-arranging the library definitions so that this is the case here and check your linkers documentaion to see if it requires this.
'stdsoap2.cpp' needs to be from the gsoap source directory.
PATH_TO_GSOAP_BUILD/gsoap-2.8/gsoap/stdsoap2.cpp (assuming gsoap-2.8)

Compiling wmii on Fedora 15 x86_64

I'm having trouble compiling wmii v3.9.2 on Fedora 15; Here's the interesting part (things break down at the linking stage):
% bmake -de
MAKE all libbio/
MAKE all libfmt/
MAKE all libregexp/
MAKE all libutf/
MAKE all libixp/
MAKE all doc/
MAKE all man/
MAKE all cmd/
MAKE all cmd/wmii/
MAKE all cmd/menu/
LD cmd/wmii9menu.out
/usr/bin/ld: wmii/xext.o: undefined reference to symbol 'XRenderFindVisualFormat'
/usr/bin/ld: note: 'XRenderFindVisualFormat' is defined in DSO /usr/lib64/libXrender.so.1 so try adding it to the linker command line
/usr/lib64/libXrender.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
*** Failed target: wmii9menu.out
*** Failed command: ../util/link "cc" "$(pkg-config --libs 2>/dev/null) -g -L../lib -L/usr/lib64 ../lib/libregexp9.a ../lib/libbio.a ../lib/libfmt.a ../lib/libutf.a -L../lib -L/usr/lib64 ../lib/libregexp9.a ../lib/libbio.a ../lib/libfmt.a ../lib/libutf.a" wmii9menu.out wmii9menu.o clientutil.o wmii/x11.o wmii/xext.o wmii/geom.o wmii/map.o util.o ../lib/libixp.a $(pkg-config --libs xft xrandr xinerama) -lXext
*** Error code 1
Stop.
bmake: stopped in /srv/redhat/BUILD/wmii+ixp-3.9.2/cmd
*** Failed target: dall
*** Failed command: dirs="libbio libfmt libregexp libutf libixp doc man cmd libwmii_hack rc alternative_wmiircs"; set -e; targ=dall; targ=${targ#d}; for i in $dirs; do export WMII_HGVERSION=""; export BASE=$i/; if [ ! -d $i ]; then echo Skipping nonexistent directory: $i 1>&2; else echo MAKE $targ $BASE; (cd $i && bmake $targ) || exit ; fi; done
*** Error code 1
Stop.
bmake: stopped in /srv/redhat/BUILD/wmii+ixp-3.9.2
Finally, in config.mk, I have the following settings:
...
INCLUDES = -I. -I$(ROOT)/include -I$(INCLUDE) -I/usr/include
LIBS = -L$(ROOT)/lib -L/usr/lib64
...
LDFLAGS += -g $(LIBS)
SOLDFLAGS += $(LDFLAGS)
SHARED = -shared -Wl,-soname=$(SONAME)
STATIC = -static
...
With a little more manual resolution, the statement generating the error is essentially as follows:
gcc \
-o wmii9menu.out\
-L../lib -L/usr/lib $(pkg-config --libs xft xrandr xinerama xext)\
../lib/libregexp9.a ../lib/libbio.a ../lib/libfmt.a\
../lib/libutf.a ../lib/libixp.a\
wmii9menu.o clientutil.o util.o\
wmii/x11.o wmii/xext.o wmii/geom.o wmii/map.o
Here, the pkg-config resolves to the following, which by itself is perfectly correct:
-lXft -lXrandr -lXinerama -lXext
And the solution is as follows:
--- wmii+ixp-3.9.2/config.mk 2011-06-03 14:03:22.950163074 +1000
+++ wmii+ixp-3.9.2/config.mk 2011-06-03 14:03:16.086129011 +1000
## -32 +32 ##
-X11PACKAGES = xft
+X11PACKAGES = xft xext xrandr xrender xinerama

Resources