【问题标题】:Linking and compiling error with rvizrviz 链接和编译错误
【发布时间】:2015-05-03 14:53:41
【问题描述】:

我正在尝试使用 OGRE 加载 urdf 文件,但在编译时遇到了一些问题。下面是我的make文件

CC = g++
CC_FLAGS = -w -std=c++0x -I/usr/include/OGRE
LIBS = -ltbb -lrt -lpthread -lm -ldl -lOgreMain  -lboost_system

EXEC = run
SOURCES = $(wildcard *.cc)
OBJECTS = $(SOURCES:.cc=.o)

#Main target
all: $(OBJECTS)
     $(CC) $(OBJECTS) -o $(EXEC) $(LIBS)

#To obtain object files
%.o: %.cc
    $(CC) -c $(CC_FLAGS) $< -o $@ $(LIBS)


.PHONY: clean
clean:
    rm -f $(EXEC) $(OBJECTS)

我收到以下错误:

main.o: In function `addLink(boost::shared_ptr<urdf::Link const>)':
main.cc:(.text+0x535): undefined reference to `rviz::loadMeshFromResource(std::string const&)'
main.o: In function `initModel(char const*)':
main.cc:(.text+0x134e): undefined reference to `urdf::Model::initFile(std::string const&)'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1

关于如何修复它的任何想法。

【问题讨论】:

标签: c++ c++11 ros ogre


【解决方案1】:

现在可以了。我添加了 -lurdf 和 -lrviz

CC = g++
CC_FLAGS = -w -std=c++0x -I/usr/include/OGRE -I/opt/ros/indigo/include -I/opt/ros/indigo/include/kdl
LIBS = -ltbb -lrt -lpthread -lm -ldl -lOgreMain -lboost_system -L/opt/ros/indigo/lib -lurdf -lrviz

EXEC = run
SOURCES = $(wildcard *.cc)
OBJECTS = $(SOURCES:.cc=.o)

#Main target  
all: $(OBJECTS)
    $(CC) $(OBJECTS) -o $(EXEC) $(LIBS)

#To obtain object files
%.o: %.cc
    $(CC) -c $(CC_FLAGS) $< -o $@ $(LIBS)

.PHONY: clean
clean: 
    rm -f $(EXEC) $(OBJECTS)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2012-07-11
    • 1970-01-01
    • 2017-05-15
    • 2014-01-14
    • 2014-02-26
    • 1970-01-01
    相关资源
    最近更新 更多