1

我正在尝试在 Eclipse 中构建一个非常简单的 C++ 程序,但我遇到了一个非常愚蠢的错误:


**** Internal Builder is used for build               ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oMyFirst.o ../MyFirst.cpp
g++ -oLinkedLists MyFirst.o
ld: unknown option: -oLinkedLists
collect2: ld returned 1 exit status
Build error occurred, build is stopped

消耗时间:403 毫秒。


问题是 osx 中的 g++ 不喜欢可执行文件名旁边的“g++ -oLinkedLists MyFirst.o”命令中的 -o 标志...有谁知道如何配置 g++ 以接受它或如何配置eclipse中的构建器使得-o标志和文件名之间有一个空格,如下所示:“g ++ -o LinkedLists MyFirst.o”?

提前谢谢!

4

3 回答 3

2

为了进一步澄清这个问题,解决方案不一定是使用 MacOSX gcc 工具链。问题在于工具链中链接器的命令行模式。解决此问题所需要做的就是编辑命令行模式以确保每个术语之间有空格。

默认情况下,Linux gcc 链接器的命令行模式类似于: ${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}${INPUTS}

注意 ${OUTPUT_PREFIX} 和 ${OUTPUT} 之间没有空格。这是问题的症结所在。只需在这两个术语之间添加一个空格,您的问题就解决了。

于 2010-08-25T16:46:44.983 回答
1

Mark 实际上为我指出了正确的方向,但我必须做的是去:项目 >> 属性 >> C/C++ 构建 >> 工具链编辑器

然后我将“当前工具链”选择框更改为“MacOSX gcc”并修复了它:)

于 2009-09-29T04:40:44.057 回答
0

我在 OSX 10.5 上使用 eclipse CDT 3.5,它可以工作 -

**** Internal Builder is used for build               ****
g++ -I/opt/local/include -O0 -g3 -Wall -c -fmessage-length=0 -osrc/tet.o ../src/tet.cpp
g++ -o tet src/tet.o
Build complete for project tet

我的可执行文件 tet 在链接行中有一个空格

我正在使用默认设置

在 settings->C/C++ Build->Settings->Mac OSX C++ 链接器中,命令行模式是

${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

于 2009-09-25T08:33:31.543 回答