经过数小时的谷歌搜索,我决定放弃并咨询专家。我正在尝试在我的 64 位 Ubuntu 11.10 中构建一个 32 位应用程序(如果有人感兴趣,则为 xgap)。我在 makefile 中添加了CFLAGS=-m32和LDFLAGS=-L/usr/lib32。这些对象被内置到 32 位精细中。最后一步是将 X 窗口的所有对象和库链接到这个可执行文件——xgap。不知何故,它不断给我这个错误:
gcc -o xgap xcmds.o utils.o gapgraph.o gaptext.o pty.o popdial.o xgap.o selfile.o -L/usr/lib32 -lXaw -lXmu -lXt -lXext -lX11 -lSM -lICE
/usr/bin/ld: skipping incompatible /usr/lib32/libXmu.so when searching for -lXmu
...
/usr/bin/ld: i386 architecture of input file `xcmds.o' is incompatible with i386:x86-64 output
...
Run Code Online (Sandbox Code Playgroud)
我已经安装了ia32-libs和mutilib support。我想我只需要强制链接器生成 i386 输出。我尝试在我的 gcc 命令中放置两个ld标志,如上所示:-melf_i386和-oformat elf32-i386。但是发生的情况是 gcc 不再在/usr/lib32 …
我想把我的程序的输出放到一个文件中。我输入了以下内容:
./prog > log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是文件"log" 中没有任何内容。我使用的是 Ubuntu 11.10,默认 shell 是 bash。
任何人都知道这个的原因以及我如何调试它?