godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.34k stars 21.06k forks source link

[Building] 3.3 without some modules causes error! #51245

Closed nonunknown closed 3 years ago

nonunknown commented 3 years ago

Godot version

4bc527fedda98a7519e842d690a1be8387b795f2

System information

manjaro Gnome 21, AMD R7 200 series, Intel i3 3.0 GHZ,8GB RAM

Issue description

I'm building the latest 3.3 branch and got this message:

[Initial build] Linking Program        ==> bin/godot.x11.opt.tools.64
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::buffer_data()':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:40: undefined reference to `ogg_sync_buffer'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:63: undefined reference to `ogg_sync_wrote'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::queue_page(ogg_page*)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:71: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:76: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::clear()':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:140: undefined reference to `ogg_sync_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:134: undefined reference to `ogg_stream_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:124: undefined reference to `ogg_stream_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:129: undefined reference to `vorbis_comment_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:130: undefined reference to `vorbis_info_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:126: undefined reference to `vorbis_block_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:127: undefined reference to `vorbis_dsp_clear'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::set_file(String const&)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:189: undefined reference to `ogg_sync_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:192: undefined reference to `vorbis_info_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:193: undefined reference to `vorbis_comment_init'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::buffer_data()':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:40: undefined reference to `ogg_sync_buffer'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:63: undefined reference to `ogg_sync_wrote'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::set_file(String const&)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:211: undefined reference to `ogg_sync_pageout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:215: undefined reference to `ogg_page_bos'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:222: undefined reference to `ogg_page_serialno'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:222: undefined reference to `ogg_stream_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:223: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:224: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:231: undefined reference to `vorbis_synthesis_headerin'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:235: undefined reference to `vorbis_info_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:236: undefined reference to `vorbis_comment_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:237: undefined reference to `ogg_stream_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:238: undefined reference to `vorbis_info_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:239: undefined reference to `vorbis_comment_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:211: undefined reference to `ogg_sync_pageout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:215: undefined reference to `ogg_page_bos'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:259: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:280: undefined reference to `vorbis_synthesis_headerin'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:274: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:293: undefined reference to `ogg_sync_pageout'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::queue_page(ogg_page*)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:76: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::set_file(String const&)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:248: undefined reference to `ogg_stream_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:348: undefined reference to `vorbis_synthesis_init'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:349: undefined reference to `vorbis_block_init'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::queue_page(ogg_page*)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:76: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:71: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:71: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::buffer_data()':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:40: undefined reference to `ogg_sync_buffer'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:63: undefined reference to `ogg_sync_wrote'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::set_file(String const&)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:353: undefined reference to `vorbis_info_clear'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:354: undefined reference to `vorbis_comment_clear'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::update(float)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:410: undefined reference to `vorbis_synthesis_pcmout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:441: undefined reference to `vorbis_synthesis_read'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:465: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:523: undefined reference to `ogg_sync_pageout'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::queue_page(ogg_page*)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:76: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::update(float)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:448: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:449: undefined reference to `vorbis_synthesis'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:465: undefined reference to `ogg_stream_packetout'
/usr/bin/ld: /run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:450: undefined reference to `vorbis_synthesis_blockin'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::queue_page(ogg_page*)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:71: undefined reference to `ogg_stream_pagein'
/usr/bin/ld: modules/libmodules.x11.opt.tools.64.a(video_stream_theora.x11.opt.tools.64.o): in function `VideoStreamPlaybackTheora::update(float)':
/run/media/nonunknown/3a1f3657-ce4a-4ffa-8f65-f41e1dfcaf68/godot3_source/modules/theora/video_stream_theora.cpp:441: undefined reference to `vorbis_synthesis_read'
collect2: error: ld returned 1 exit status
scons: *** [bin/godot.x11.opt.tools.64] Error 1
scons: building terminated because of errors.

Steps to reproduce

Command: scons platform=linux target=release_debug -j 4

custom.py:

# Generated using https://godot-build-options-generator.github.io

deprecated = "no"
minizip = "no"
module_arkit_enabled = "no"
module_bmp_enabled = "no"
module_camera_enabled = "no"
module_csg_enabled = "no"
module_dds_enabled = "no"
module_gridmap_enabled = "no"
module_hdr_enabled = "no"
module_mobile_vr_enabled = "no"
module_ogg_enabled = "no"
module_opus_enabled = "no"
module_tga_enabled = "no"
module_visual_script_enabled = "no"
module_vorbis_enabled = "no"
module_webm_enabled = "no"
module_webp_enabled = "no"

Minimal reproduction project

No response

akien-mga commented 3 years ago

You should disable theora too if you want to disable vorbis.

merumelu commented 3 years ago
module_webp_enabled = "no"

In 3.x and master the WebP module is now required if you import textures with the default "Lossless" or "Lossy" options. With module_webp_enabled = "no" you will get a crash at runtime.

See #49633.

Calinou commented 3 years ago

In 3.x and master the WebP module is now required if you import textures with the default "Lossless" or "Lossy" options. With module_webp_enabled = "no" you will get a crash at runtime.

We should modify the documentation to longer recommending the WebP module in this case (and perhaps make it a hard requirement for building in general).

Edit: Documentation change made in https://github.com/godotengine/godot-docs/pull/5151.

nonunknown commented 3 years ago

@akien-mga @Calinou I've disabled theora and did the build in 3.x and worked flawlessly!