在64位开放suse linux上构建32 exe会出现链接错误

时间:2015-10-09 12:19:00

标签: c++ linux gcc linker

在我的VM中,我已经安装了open suse linux 64 bit。 试图为32位构建一个exe。

但是在运行命令时: g ++ prg1.cpp -o prg1 -m32

我收到以下错误:

  

/usr/lib64/gcc/x86_64-suse-linux/4.8 /../../../../ x86_64的-SUSE-LINUX /斌/ LD:   跳过不兼容   /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.so搜索时   -lstdc ++ /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:   跳过不兼容的/usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.a   在搜索-lstdc ++时   /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:   找不到-lstdc ++ collect2:错误:ld返回1退出状态

为了构建32,我已经为32位安装了必要的rpms。

跑步 g ++ -print-search-dirs ,输出为

  

安装:/usr/lib64/gcc/x86_64-suse-linux/4.8/程序:   =在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /../../ .. /../x86_64-suse-linux/bin/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64- SUSE Linux的/ bin中/   库:   =在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /../../../../ x86_64的-SUSE-LINUX / LIB / x86_64的-SUSE-LINUX / 4.8 /:在/ usr / lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /../../../../ x86_64的-SUSE-LINUX / lib中/../ lib64下/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/ ../../../../lib64/:/lib/x86_64-suse-linux/4.8/:/lib/../lib64/:/usr/lib/x86_64-suse-linux/4.8/: /usr/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/lib/:/usr/ lib64下/ GCC / x86_64的-SUSE-LINUX / 4.8 /../../../:/ LIB /:/ usr / lib中/

虽然还安装了32位libstdc ++,但链接器无法链接到它。是否需要任何特定标志来告诉链接器构建32位 或者我必须安装任何其他包?

1 个答案:

答案 0 :(得分:1)

  

为了构建32,我已经为32位安装了必要的rpms。

不,你没有。

请注意,为了构建程序,您需要32位运行时开发库。我猜你已经安装了前者,而不是后者。