/ usr / bin / ld:找不到-lstdc ++

时间:2014-06-18 15:08:43

标签: makefile debian rtsp

您好我正在尝试使用Debian Wheezy armHF中的make代码进行编译,但它不能正常工作它总是给我这个错误

我找到了lstdc ++。所以看起来它是直接访问而不是原始文件

 /usr/bin/ld: cannot find -lstdc++ 
collect2: error: ld returned 1 exit status


#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>

int main (int argc, char *argv[])
{
  GMainLoop *loop;
  GstRTSPServer *server;
  GstRTSPMediaMapping *mapping;
  GstRTSPMediaFactory *factory;

  gst_init (&argc, &argv);
  loop = g_main_loop_new (NULL, FALSE);
  server = gst_rtsp_server_new ();
  mapping = gst_rtsp_server_get_media_mapping (server);
  factory = gst_rtsp_media_factory_new ();
  gst_rtsp_media_factory_set_launch (factory,
       "( mfw_v4lsrc capture-mode=0 is-live=1 ! vpuenc codec=0 ! rtpmp4vpay send-config=true name=pay0 pt=96 )");


  gst_rtsp_media_factory_set_shared (factory, TRUE);
  gst_rtsp_media_mapping_add_factory (mapping, "/test", factory);
  g_object_unref (mapping);
  gst_rtsp_server_attach (server, NULL);
  g_main_loop_run (loop);

  return 0;
}

使用此makefile

CPPFLAGS += -I. -I$(top_builddir)/include -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2 -I/usr/lib/glib-2.0/include -I/usr/include/gstreamer-0.10/gst/rtsp-server/

OBJ = rtsptest.o

%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CPPFLAGS)

rtsptest: $(OBJ)
    $(CC) -o $@ $^ $(LDFLAGS) $(CPPFLAGS) -pthread -lstdc++ -lgstreamer-0.10 -lgstrtsp-0.10 -lgstrtspserver-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -lm

clean:
    rm *.o
    rm test

1 个答案:

答案 0 :(得分:1)

您正在使用gcc$(CC))编译C ++代码。这确实使用C ++编译器,因为它能够确定您是从文件扩展名编译C ++代码。但是gcc不会自动引用C ++标准库。要访问C ++标准库,请使用g++编译代码。

相关问题