Bonjour � toutes et tous,

Je me tourne vers vous en esp�rant que vous puissiez r�pondre � mon probl�me.

Contexte :
Je souhaite d�velopper une application utilisant gstreamer pour une cible embarqu�e � l'aide d'Eclipse et de la toolchain linaro. Malheureusement, apr�s maintes tentatives, �a ne compile pas ... (la toolchain est op�rationnelle, d'autre codes compilent mais utilisent des biblioth�ques standards).

Voici mon code (qui est le Hello World de Gstreamer fourni sur leur site)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * main.c
 *
 *  Created on: 21 janv. 2016
 *      Author: vincent
 */
 
#include <stdlib.h>
#include <stdio.h>
#include <gst/gst.h>
 
int main(int argc, char *argv[]) {
 
  GstElement *pipeline;
  GstBus *bus;
  GstMessage *msg;
 
  /* Initialize GStreamer */
  gst_init(&argc,&argv);
 
  /* Build the pipeline */
  pipeline = gst_parse_launch ("playbin2 uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm", NULL);
 
  /* Start playing */
  gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
  /* Wait until error or EOS */
  bus = gst_element_get_bus (pipeline);
  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
 
  /* Free resources */
  if (msg != NULL)
	gst_message_unref (msg);
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;
}
Mes options de compilation :
Include paths :
  • /opt/gstreamer-sdk/include/gstreamer-0.10
  • /opt/gstreamer-sdk/include/gstreamer-0.10/gst
  • /opt/gstreamer-sdk/include/libxml2/
  • /opt/gstreamer-sdk/include/glib-2.0
  • /opt/gstreamer-sdk/lib/glib-2.0/include
  • /opt/gstreamer-sdk/include/glib-2.0/glib
  • /opt/gstreamer-sdk/include/glib-2.0/gobject
  • /home/vincent/tools/gcc-linaro/include
  • /usr/include/gstreamer-0.10
  • /opt/gstreamer-sdk/include


Pre-build steps : /opt/gstreamer-sdk/bin/./gst-sdk-shell
Libraries:
  • /home/vincent/tools/gcc-linaro/lib
  • /home/vincent/tools/gcc-linaro/arm-linux-gnueabihf/lib
  • /home/vincent/tools/gcc-linaro/arm-linux-gnueabihf/libc/lib


Log ce compilation :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
16:43:27 **** Build of configuration Debug for project snapshot ****
make pre-build main-build 
/opt/gstreamer-sdk/bin/./gst-sdk-shell
 
Building file: ../main.c
Invoking: Cross GCC Compiler
arm-linux-gnueabihf-gcc -I/opt/gstreamer-sdk/include/gstreamer-0.10 -I/opt/gstreamer-sdk/include/gstreamer-0.10/gst -I/opt/gstreamer-sdk/include/libxml2/ -I/opt/gstreamer-sdk/include/glib-2.0 -I/opt/gstreamer-sdk/lib/glib-2.0/include -I/opt/gstreamer-sdk/include/glib-2.0/glib -I/opt/gstreamer-sdk/include/glib-2.0/gobject -I/home/vincent/tools/gcc-linaro/include -I/usr/include/gstreamer-0.10 -I/opt/gstreamer-sdk/include -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" -o "main.o" "../main.c"
In file included from /opt/gstreamer-sdk/include/gstreamer-0.10/gst/gst.h:75:0,
                 from ../main.c:10:
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h: In function 'GDOUBLE_SWAP_LE_BE':
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:566:3: warning: left shift count >= width of type
   u.i = GUINT64_SWAP_LE_BE (u.i);
   ^
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:566:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:566:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:566:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h: In function 'GST_READ_DOUBLE_LE':
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:755:3: warning: left shift count >= width of type
   u.i = GST_READ_UINT64_LE (data);
   ^
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:755:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:755:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:755:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h: In function 'GST_READ_DOUBLE_BE':
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:783:3: warning: left shift count >= width of type
   u.i = GST_READ_UINT64_BE (data);
   ^
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:783:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:783:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:783:3: warning: left shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h: In function 'GST_WRITE_DOUBLE_LE':
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:865:3: warning: right shift count >= width of type
   GST_WRITE_UINT64_LE (data, u.i);
   ^
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:865:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:865:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:865:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h: In function 'GST_WRITE_DOUBLE_BE':
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:892:3: warning: right shift count >= width of type
   GST_WRITE_UINT64_BE (data, u.i);
   ^
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:892:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:892:3: warning: right shift count >= width of type
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstutils.h:892:3: warning: right shift count >= width of type
Finished building: ../main.c
 
Building target: snapshot
Invoking: Cross GCC Linker
arm-linux-gnueabihf-gcc -L/home/vincent/tools/gcc-linaro/lib -L/usr/lib/gstreamer-0.10 -L/opt/gstreamer-sdk/lib -L/home/vincent/tools/gcc-linaro/arm-linux-gnueabihf/lib -L/home/vincent/tools/gcc-linaro/arm-linux-gnueabihf/libc/lib -o "snapshot"  ./main.o   
./main.o: dans la fonction « gst_message_unref »:
/opt/gstreamer-sdk/include/gstreamer-0.10/gst/gstmessage.h:347: référence indéfinie vers « gst_mini_object_unref »
./main.o: dans la fonction « main »:
/home/vincent/workspace/snapshot/Debug/../main.c:19: référence indéfinie vers « gst_init »
/home/vincent/workspace/snapshot/Debug/../main.c:22: référence indéfinie vers « gst_parse_launch »
/home/vincent/workspace/snapshot/Debug/../main.c:25: référence indéfinie vers « gst_element_set_state »
/home/vincent/workspace/snapshot/Debug/../main.c:28: référence indéfinie vers « gst_element_get_bus »
/home/vincent/workspace/snapshot/Debug/../main.c:29: référence indéfinie vers « gst_bus_timed_pop_filtered »
/home/vincent/workspace/snapshot/Debug/../main.c:34: référence indéfinie vers « gst_object_unref »
/home/vincent/workspace/snapshot/Debug/../main.c:35: référence indéfinie vers « gst_element_set_state »
/home/vincent/workspace/snapshot/Debug/../main.c:36: référence indéfinie vers « gst_object_unref »
collect2: error: ld returned 1 exit status
make: *** [snapshot] Erreur 1
 
16:43:27 Build Finished (took 518ms)

Le SDK de gstreamer est install� dans /opt/gstreamer-sdk. Ce qui est �trange c'est que l'autocompl�tion fonctionne correctement.
Je suppose, en voyant le retour "error ld returned exist status" qu'il y a un probl�me de lien mais lequel ...


Merci de votre aide.