libcpr / cpr

C++ Requests: Curl for People, a spiritual port of Python Requests.
https://docs.libcpr.org/
Other
6.29k stars 903 forks source link

Architecture incompatibility when building #1056

Closed ShadowMonster99 closed 3 weeks ago

ShadowMonster99 commented 1 month ago

Description

[ 15%] Built target zlib
Consolidate compiler generated dependencies of target libcurl_static
[ 83%] Built target libcurl_static
[ 94%] Built target cpr
[ 94%] Linking CXX executable main
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(easy.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(escape.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(getinfo.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hsts.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http_digest.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(llist.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(mime.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(mprintf.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(multi.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(nonblock.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(parsedate.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(progress.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(rand.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(rename.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(select.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(sendf.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(setopt.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(share.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(slist.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(speedcheck.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(splay.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(strcase.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(strdup.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(strtoofft.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(timeval.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(transfer.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(url.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(urlapi.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(version.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(warnless.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(digest.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(vauth.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(vtls.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(altsvc.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(asyn-thread.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(base64.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(bufref.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cfilters.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(conncache.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(connect.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(content_encoding.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cookie.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_addrinfo.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_get_line.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_memrchr.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_threads.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_trc.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(dynbuf.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(fopen.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(getenv.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hash.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(headers.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hostasyn.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hostip.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hostip6.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http_aws_sigv4.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http_chunks.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http_ntlm.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http_proxy.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(idn.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(md5.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(netrc.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(noproxy.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(sha256.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(socks.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(strerror.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(ntlm.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(openssl.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(vquic.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cf-h1-proxy.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cf-haproxy.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cf-https-connect.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(cf-socket.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_endian.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(curl_ntlm_core.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(doh.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(dynhds.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(formdata.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hmac.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(http1.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(if2ip.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(md4.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(hostcheck.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(keylog.c.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `_deps/curl-build/lib/libcurl-d.a(bufq.c.o)' is incompatible with i386:x86-64 output

Example/How to Reproduce

  1. Build libcpr with Fetch Content on ubuntu linux with set(BUILD_SHARED_LIBS OFF)
  2. When the linker attempts to link the executable it spits out incompatibility errors

I haven't explicitly specified a architecture anywhere inside my CMakeLists.txt and I've tried different compilers so I have no idea how/why it would be clashing. It works fine compiling as shared

Possible Fix

No response

Where did you get it from?

GitHub (branch e.g. master)

Additional Context/Your Environment

COM8 commented 1 month ago

You are trying to link a i386 build libcurl to cpr. You are running ubuntu 22.04.4 but as far as I'm aware ubuntu stopped providing 32Bit images with Ubuntu 18.04.

Are you able to build this cpr example on your system? https://github.com/libcpr/example-cmake-fetch-content

COM8 commented 3 weeks ago

Closing for no response.