Player/Stage 模拟器的 Eclipse CDT 中的代码构建错误

Code Building Error in Eclipse CDT for Player/Stage simulator

我正在使用 Player/Stage 来完成我的论文工作。但是,当我想在 Eclipse 中构建此代码时,我收到 undefined reference 错误消息 CDT-

#include <iostream>
#include <playerc++.h>
#include <playerclient.h>
#include <clientproxy.h>
using namespace std;

int main()
{
PlayerClient robot("localhost",6665);
return 0;
}

错误信息是:

08:40:02 **** Build of configuration Debug for project firstTest ****
make all
Building file: ../src/firstTest.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/local/include/player-3.0/libplayerc++ -include/usr/local/include/player-3.0/libplayerc++/playerc++.h -include/usr/local/include/player-3.0/libplayerc++/clientproxy.h -include/usr/local/include/player-3.0/libplayerc++/playerc++config.h -include/usr/local/include/player-3.0/libplayerc++/playerclient.h -include/usr/local/include/player-3.0/libplayerc++/playererror.h -include/usr/local/include/player-3.0/libplayerc++/utility.h -O0 -g3 -Wall -c -fmessage-length=0 `pkg-config --cflags playerc++` -MMD -MP -MF"src/firstTest.d" -MT"src/firstTest.d" -o "src/firstTest.o" "../src/firstTest.cpp"
Finished building: ../src/firstTest.cpp
Building target: firstTest
Invoking: GCC C++ Linker
g++ `pkg-config --libs playerc++` -o "firstTest" ./src/firstTest.o
./src/firstTest.o: In function `main':
/home/nafees/workspace/firstTest/Debug/../src/firstTest.cpp:19: undefined reference to `PlayerCc::PlayerClient::PlayerClient(std::string, unsigned int, int)'
/home/nafees/workspace/firstTest/Debug/../src/firstTest.cpp:19: undefined reference to `PlayerCc::PlayerClient::~PlayerClient()'
collect2: error: ld returned 1 exit status
make: *** [firstTest] Error 1

08:40:02 Build Finished (took 514ms)

我遵循了 Jenny 发布的这个不错的教程- http://yorkroboticist.blogspot.com/2010/03/playerstage-on-eclipse.html

在此 link 中,您将获得我的 Eclipse 项目属性的快照: https://www.dropbox.com/sh/9hcmditufu0lt6v/AAChqD1-FMM9FhvTWpuOGMQ-a?dl=0

我已经尝试了很多方法来消除这个错误。但是,一切都在静脉中。请帮助我继续我的论文。

谢谢 纳菲斯

我已经解决了 "undefined reference" 问题.....

如果有人想用eclipse CDT进行stage/player模拟,请按以下步骤操作。我假设您已正确安装 Player/Stage。

  1. 转到项目 属性

  2. 展开C/C++构建.

  3. 单击设置

  4. 如果要构建 C++ 代码,请按照以下步骤操作 -

    • GCC C++ 编译器 下,单击 杂项 选项卡。

    • 有一个名为"Other flags"的盒子。将此行(带有`符号)粘贴到框上 -

    `pkg-config --cflags playerc++`

    • 注意:切勿编辑框中的现有行。只需将上面的行粘贴到带有 space 的现有行旁边。请记住 ' 和 ` 是不一样的。

    • 然后,转到includes/directories(名称可能因eclipse 版本而异)选项卡。有一个 "include paths(-I)" 框。单击 添加 按钮并导航至 - 计算机 > usr > 本地 > 包括 > 播放器- x.x 然后按确定。

  5. 如果您想构建 C 代码,请跳过第 4 条指令并按照以下步骤操作 -

    • GCC C 编译器 下,单击 杂项

    • 有一个名为"Other flags"的盒子。将此行(带有`符号)粘贴到框上 -

    `pkg-config --cflags playerc`

    • 注意:切勿编辑框中的现有行。只需将上面的行粘贴到带有 space 的现有行旁边。记住 ' 和 ` 是不一样的

    • 转到includes/directories(名称可能因 eclipse 版本而异)选项卡。有一个 "include paths(-I)" 框。单击 添加 按钮并导航至 - 计算机 > usr > 本地 > 包括 > 播放器- x.x 然后按确定。

  6. 现在,最重要的步骤来了。在 GCC C++ Linker 下,单击 Miscellaneous 选项卡。有一个名为 "Linker flags" 的框。

    • 如果您使用的是 C++,请粘贴以下行 -

    `pkg-config --libs playerc++`

    • 如果您使用的是 C,请粘贴以下行而不是上面的 -

    `pkg-config --libs playerc`

    • 现在,转到 选项卡,在那里您会看到"Libraries (-l)" 框。按 添加 按钮和

    • 如果您使用的是 C++,请粘贴行-

    playerc++

    • 如果您使用的是 C,请粘贴以下行而不是上面的 -

    playerc

    • 最后,下面有一个名为"Library search path (-L)"的盒子。单击 添加 按钮并导航到 - 计算机 > usr > 本地 > lib 然后单击确定。

就是这样.......现在尝试编译和构建示例代码。 :) :) :)