0

msiWindows 7 (基本) 64 ビットに次の 2 つをインストールしました。msi はhereからダウンロードしました。

  • gstreamer-sdk-devel-x86_64-2013.6.msi
  • gstreamer-sdk-x86_64-2013.6.msi

今、私はMinGW (GCC 4.8.1) を使用してこの hello worldプログラムを構築しようとしていますが、リンカーは次のように言って問題を引き起こしています:

C:\Users\Apelles\AppData\Local\Temp\ccwLMXuu.o: In function `gst_message_unref':
C:/gstreamer-sdk/0.10/x86_64/include/gstreamer-0.10/gst/gstmessage.h:347: undefined reference to `gst_mini_object_unref'
C:\Users\Apelles\AppData\Local\Temp\ccwLMXuu.o: In function `main':
F:\projects\gstreamer/helloworld.c:9: undefined reference to `gst_init'
F:\projects\gstreamer/helloworld.c:12: undefined reference to `gst_parse_launch'
F:\projects\gstreamer/helloworld.c:15: undefined reference to `gst_element_set_state'
F:\projects\gstreamer/helloworld.c:18: undefined reference to `gst_element_get_bus'
F:\projects\gstreamer/helloworld.c:19: undefined reference to `gst_bus_timed_pop_filtered'
F:\projects\gstreamer/helloworld.c:24: undefined reference to `gst_object_unref'
F:\projects\gstreamer/helloworld.c:25: undefined reference to `gst_element_set_state'
F:\projects\gstreamer/helloworld.c:26: undefined reference to `gst_object_unref'
collect2.exe: error: ld returned 1 exit status

どのライブラリが不足していますか?

プロジェクトのビルドに使用したオプションは次のとおりです (make出力から取得)。

gcc helloworld.c -ggdb -Wall -Wextra -ansi -std=c99 -Wno-unused-parameter -mms-bitfields -IC:/gstreamer-sdk/0.10/x86_64/include/gtk-2.0 -IC:/gstreamer-sdk /0.10/x86_64/lib/gtk-2.0/include -IC:/gstreamer-sdk/0.10/x86_64/include/atk-1.0 -IC:/gstreamer-sdk/0.10/x86_64/include/cairo -IC:/gstreamer- SDK/0.10/x86_64/include/gdk-pixbuf-2.0 -IC:/gstreamer-sdk/0.10/x86_64/include/pango-1.0 -IC:/gstreamer-sdk/0.10/x86_64/include/glib-2.0 -IC: /gstreamer-sdk/0.10/x86_64/lib/glib-2.0/include -IC:/gstreamer-sdk/0.10/x86_64/include/pixman-1 -IC:/gstreamer-sdk/0.10/x86_64/include/fontconfig -IC :/gstreamer-sdk/0.10/x86_64/include/freetype2 -IC:/gstreamer-sdk/0.10/x86_64/include -IC:/gstreamer-sdk/0.10/x86_64/include/libpng15 -mms-bitfields -IC:/gstreamer -sdk/0.10/x86_64/include/gstreamer-0.10 -IC:/gstreamer-sdk/0.10/x86_64/include/glib-2.0 -IC:/gstreamer-sdk/0.10/x86_64/lib/glib-2.0/include -IC:/gstreamer-sdk/0.10/x86_64/include/libxml2 -LC:/gstreamer-sdk/0.10/x86_64/lib -lgtk-win32-2.0 -lgdk-win32- 2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lintl -LC:/gstreamer-sdk/0.10/x86_64 /lib -lgstinterfaces-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl

これには何が欠けていますか?

これを解決するにはどうすればよいですか?

4

1 に答える 1

3

x86 アーキテクチャを対象とする MinGW のデフォルト GCC コンパイラを使用していると思われますが、SDK の x86_64 バージョンをダウンロードしました。リンカーはライブラリを見つけることができますが、それらを使用することはできません。

開発環境のセットアップには、cerbero のビルドシステムを使用することを強くお勧めします。作業中のツールチェーンをダウンロードし、すべてのビルド依存関係 (autotools、gettext、libtoo、pkg-config など...) をコンパイルします。

詳細な手順については、SDK を使用して単一のプロジェクトをビルドするセクションを参照してください。

要するに:

  1. チェックアウト cerbero のレポ
  2. ブートストラップ コマンドを実行します: ./cerbero-uninstalled -c config/win64.cbc bootstrap
  3. 開発シェルに入ります: ./cerbero-uninstalled -c config/win64.cbc shell
于 2013-10-17T01:10:00.923 に答える