MGlolenstine / gtk4-cross

A Docker container for cross-compiling gtk4 programs to Windows.
57 stars 12 forks source link

Linker cannot find intl. #38

Closed Jlucu4ka228 closed 1 month ago

Jlucu4ka228 commented 1 month ago

Hello there. I'm trying to cross-compile my gtk 4.8 application with this docker image. I've made everything needed for building, but:


   Compiling gtk4 v0.8.2
error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.cargo/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustc7XDL1K/symbols.o" "/mnt/target/release/build/learn-hieroglyph-e09269306ada7179/build_script_build-e09269306ada7179.build_script_build.ef0d514badbfe206-cgu.0.rcgu.o" "/mnt/target/release/build/learn-hieroglyph-e09269306ada7179/build_script_build-e09269306ada7179.4t3oxqdwg73n1hlc.rcgu.o" "-Wl,--as-needed" "-L" "/mnt/target/release/deps" "-L" "/usr/x86_64-w64-mingw32/sys-root/mingw/lib" "-L" "/usr/x86_64-w64-mingw32/sys-root/mingw/lib" "-L" "/usr/x86_64-w64-mingw32/sys-root/mingw/lib" "-L" "/usr/x86_64-w64-mingw32/sys-root/mingw/lib" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/mnt/target/release/deps/libglib_build_tools-8c5218d095895966.rlib" "/mnt/target/release/deps/libgio-113f3470fd159893.rlib" "/mnt/target/release/deps/libfutures_io-0b596295e80f6c9e.rlib" "/mnt/target/release/deps/libglib-f12cb1846ee23c75.rlib" "/mnt/target/release/deps/libfutures_executor-a84b69f8aceb51ba.rlib" "/mnt/target/release/deps/libmemchr-8c39984a5aaa1f9d.rlib" "/mnt/target/release/deps/libsmallvec-306edee971ab6213.rlib" "/mnt/target/release/deps/libthiserror-4c7084199d6bd39c.rlib" "/mnt/target/release/deps/libfutures_util-a613bdad57b6e982.rlib" "/mnt/target/release/deps/libslab-256c9de9fbca8f61.rlib" "/mnt/target/release/deps/libpin_project_lite-55d7177d51ecd1a6.rlib" "/mnt/target/release/deps/libpin_utils-36760ca8dac58622.rlib" "/mnt/target/release/deps/libfutures_task-60ebc5b9ea70111e.rlib" "/mnt/target/release/deps/libfutures_channel-600f18c6ef9bd16b.rlib" "/mnt/target/release/deps/libfutures_core-6257b1810ce53ce2.rlib" "/mnt/target/release/deps/libbitflags-e7afaef31c81520c.rlib" "/mnt/target/release/deps/libgio_sys-7254f88de8f07960.rlib" "/mnt/target/release/deps/libgobject_sys-5c7eb776fb25a579.rlib" "/mnt/target/release/deps/libglib_sys-0f728144bbb19f19.rlib" "/mnt/target/release/deps/libdirs-6fc97cd85c6b534b.rlib" "/mnt/target/release/deps/libdirs_sys-6775cfab57b4b8c0.rlib" "/mnt/target/release/deps/liblibc-d6cbd21f8ba2e64b.rlib" "/mnt/target/release/deps/liboption_ext-19ca7e378931b5e8.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-66d8041607d2929b.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a57e2388c0aea9b1.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-dcd9be90ae2cb505.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-516789932d161b4e.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1ff34b0cf871cb60.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-0c110dd0650d6cb7.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-a6e97aae2681ad8f.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-b93dac2525ec4d1e.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-ce1d65fb391ae98b.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-8933a2fb54d88492.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-306712ebb1ee1a3f.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-349c574f342b0d30.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-65c422a3ad95273d.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-7e6330a6c0cb9441.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-39c59240bfdfab27.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-e9d126c51bb8b2bb.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-5af394d9b1f07bdc.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-693a8f23970c5917.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-13fc9d1ed9c7a2bc.rlib" "-Wl,-Bdynamic" "-lgobject-2.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lintl" "-lgobject-2.0" "-lglib-2.0" "-lintl" "-lgobject-2.0" "-lglib-2.0" "-lintl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/mnt/target/release/build/learn-hieroglyph-e09269306ada7179/build_script_build-e09269306ada7179" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
  = note: /usr/bin/ld: cannot find -lintl: No such file or directory
          /usr/bin/ld: cannot find -lintl: No such file or directory
          /usr/bin/ld: cannot find -lintl: No such file or directory
          collect2: error: ld returned 1 exit status

Host os: Arch Linux 6.8.9-arch1-2 SMP PREEMPT_DYNAMIC Tue, 07 May 2024 21:35:54 +0000 x86_64 GNU/Linux Docker version 26.1.1, build 4cf5afaefa cargo 1.76.0 (c84b36747 2024-01-18) GNU ld version 2.41-34.fc40

Jlucu4ka228 commented 1 month ago

sudo dnf update didn't help.

MGlolenstine commented 1 month ago

Try running sudo dnf install gettext.

intl is a part of gettext package.

Jlucu4ka228 commented 1 month ago

Try running sudo dnf install gettext.

intl is a part of gettext package.

It says that it is already installed.

[root@ab17fb73ef58 mnt]# dnf install gettext
Fedora 40 - x86_64 - Updates                                                     19 kB/s |  22 kB     00:01    
Fedora 40 - x86_64 - Updates                                                    988 kB/s | 2.6 MB     00:02    
Last metadata expiration check: 0:00:02 ago on Tue May 14 09:08:25 2024.
Package gettext-0.22.5-2.fc40.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Jlucu4ka228 commented 1 month ago

I have installed the following gettext-common-devel.noarch gettext-devel.x86_64 rust-gettext-sys-devel rust-gettext-rs-devel mingw64-gettext mingw32-gettext, but none of this helped.

MGlolenstine commented 1 month ago

Apologies for a late response, I had to create a new project to be able to work with 4.8 and see the same issue you were having.

It'd seem that this is an issue I've encountered in the past and I've added the below line into a script which I use for running some pre-build configurations.

export PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/:$PKG_CONFIG_PATH"

This line should add those libraries to the PKG_CONFIG_PATH. It'd appear that they get lost somewhere in the void, but this solves the issue on my end.

I'll be adding this line into build script when I find the time, but let's try to figure out what the actual issue here is first.

Jlucu4ka228 commented 1 month ago

Thank you for your response. I tried to add this env and it solved the issue with linking intl, thank you very much for help. But not it can't find libsqlite,

  = note: /usr/lib/gcc/x86_64-w64-mingw32/14.0.1/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lsqlite3: No such file or directory
          collect2: error: ld returned 1 exit status

but that's my problem. Thank you again for helping.

Jlucu4ka228 commented 1 month ago

If it is interesting, all I need to do to solve problem with libsqlite was installing the following packages:

mingw32-libsqlite3x
mingw64-libsqlite3x