您好我正在尝试使用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
答案 0 :(得分:1)
您正在使用gcc
($(CC)
)编译C ++代码。这确实使用C ++编译器,因为它能够确定您是从文件扩展名编译C ++代码。但是gcc
不会自动引用C ++标准库。要访问C ++标准库,请使用g++
编译代码。