I have a source, that I'd like to build and link against the libav library on Linux.
I followed the compilation guide of ffmpeg here: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
Everything works.
I build the included examples like this: FFmpeg: building example C codes
It also works.
Now, I'd like to build my own little applications, where I try to learn about using libav. My current problem is, that by using the command line
gcc muxing.c -g -I ../../../ffmpeg_build/include/ -L ../../../ffmpeg_build/lib/ -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil -lm -lz -lpthread -lfdk-aac -lmp3lame -lx264 -lva -lX11
I get to this point:
muxing.c: In function ‘write_audio_frame’:
muxing.c:354:5: warning: ‘avcodec_encode_audio2’ is deprecated [-Wdeprecated-declarations]
ret = avcodec_encode_audio2(codecContext, &pkt, frame, &got_packet);
^~~
In file included from ../../../ffmpeg_build/include/libavformat/avformat.h:317:0,
from muxing.c:42:
../../../ffmpeg_build/include/libavcodec/avcodec.h:5418:5: note: declared here
int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
^~~~~~~~~~~~~~~~~~~~~
muxing.c: In function ‘write_video_frame’:
muxing.c:524:5: warning: ‘avcodec_encode_video2’ is deprecated [-Wdeprecated-declarations]
ret = avcodec_encode_video2(codecContext, &pkt, frame, &got_packet);
^~~
In file included from ../../../ffmpeg_build/include/libavformat/avformat.h:317:0,
from muxing.c:42:
../../../ffmpeg_build/include/libavcodec/avcodec.h:5457:5: note: declared here
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
^~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: ../../../ffmpeg_build/lib//libx264.a(opencl-8.o): undefined reference to symbol 'dlclose##GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Then I read, in order to overcome this linker error, I have to append -ldl to my command line, but then I get this:
../../../ffmpeg_build/lib//libavcodec.a(libopusdec.o): In function `libopus_flush':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:204: undefined reference to `opus_multistream_decoder_ctl'
../../../ffmpeg_build/lib//libavcodec.a(libopusdec.o): In function `libopus_decode':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:169: undefined reference to `opus_multistream_decode_float'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:165: undefined reference to `opus_multistream_decode'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:174: undefined reference to `opus_strerror'
../../../ffmpeg_build/lib//libavcodec.a(libopusdec.o): In function `libopus_decode_close':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:145: undefined reference to `opus_multistream_decoder_destroy'
../../../ffmpeg_build/lib//libavcodec.a(libopusdec.o): In function `libopus_decode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:101: undefined reference to `opus_multistream_decoder_create'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:105: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:111: undefined reference to `opus_multistream_decoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:113: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:126: undefined reference to `opus_multistream_decoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:129: undefined reference to `opus_strerror'
../../../ffmpeg_build/lib//libavcodec.a(libopusenc.o): In function `libopus_encode':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:487: undefined reference to `opus_multistream_encode'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:483: undefined reference to `opus_multistream_encode_float'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:492: undefined reference to `opus_strerror'
../../../ffmpeg_build/lib//libavcodec.a(libopusenc.o): In function `libopus_encode_close':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:530: undefined reference to `opus_multistream_encoder_destroy'
../../../ffmpeg_build/lib//libavcodec.a(libopusenc.o): In function `libopus_encode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:348: undefined reference to `opus_multistream_encoder_create'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:358: undefined reference to `opus_multistream_surround_encoder_create'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:365: undefined reference to `opus_strerror'
../../../ffmpeg_build/lib//libavcodec.a(libopusenc.o): In function `libopus_configure_encoder':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:121: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:123: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:128: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:131: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:134: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:136: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:139: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:142: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:145: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:148: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:153: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:156: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:161: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:164: undefined reference to `opus_strerror'
../../../ffmpeg_build/lib//libavcodec.a(libopusenc.o): In function `libopus_encode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:410: undefined reference to `opus_multistream_encoder_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:412: undefined reference to `opus_strerror'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:426: undefined reference to `opus_multistream_encoder_destroy'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisenc.o): In function `libvorbis_encode_frame':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:287: undefined reference to `vorbis_analysis_buffer'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:294: undefined reference to `vorbis_analysis_wrote'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:310: undefined reference to `vorbis_analysis_blockout'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:311: undefined reference to `vorbis_analysis'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:313: undefined reference to `vorbis_bitrate_addblock'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:317: undefined reference to `vorbis_bitrate_flushpacket'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:302: undefined reference to `vorbis_analysis_wrote'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisenc.o): In function `libvorbis_encode_close':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:180: undefined reference to `vorbis_analysis_wrote'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:182: undefined reference to `vorbis_block_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:183: undefined reference to `vorbis_dsp_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:184: undefined reference to `vorbis_info_clear'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisenc.o): In function `libvorbis_encode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:203: undefined reference to `vorbis_info_init'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisenc.o): In function `libvorbis_setup':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:98: undefined reference to `vorbis_encode_setup_vbr'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:107: undefined reference to `vorbis_encode_setup_managed'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:114: undefined reference to `vorbis_encode_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:121: undefined reference to `vorbis_encode_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:127: undefined reference to `vorbis_encode_ctl'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:160: undefined reference to `vorbis_encode_setup_init'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisenc.o): In function `libvorbis_encode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:208: undefined reference to `vorbis_analysis_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:214: undefined reference to `vorbis_block_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:220: undefined reference to `vorbis_comment_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:222: undefined reference to `vorbis_comment_add_tag'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:224: undefined reference to `vorbis_analysis_headerout'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:257: undefined reference to `vorbis_comment_clear'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `decode_frame':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:161: undefined reference to `vpx_codec_decode'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vpx_decode':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:221: undefined reference to `vpx_codec_get_frame'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `decode_frame':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:162: undefined reference to `vpx_codec_error'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:163: undefined reference to `vpx_codec_error_detail'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:161: undefined reference to `vpx_codec_decode'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:162: undefined reference to `vpx_codec_error'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vpx_decode':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:222: undefined reference to `vpx_codec_get_frame'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:201: undefined reference to `vpx_codec_vp9_dx_algo'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:201: undefined reference to `vpx_codec_vp8_dx_algo'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vpx_free':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:269: undefined reference to `vpx_codec_destroy'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:271: undefined reference to `vpx_codec_destroy'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vpx_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:53: undefined reference to `vpx_codec_version_str'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:54: undefined reference to `vpx_codec_build_config'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:56: undefined reference to `vpx_codec_dec_init_ver'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:59: undefined reference to `vpx_codec_error'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vp8_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:278: undefined reference to `vpx_codec_vp8_dx_algo'
../../../ffmpeg_build/lib//libavcodec.a(libvpxdec.o): In function `vp9_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:298: undefined reference to `vpx_codec_vp9_dx_algo'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `vpx_encode':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1118: undefined reference to `vpx_codec_encode'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1126: undefined reference to `vpx_codec_encode'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `queue_frames':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:979: undefined reference to `vpx_codec_get_cx_data'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:981: undefined reference to `vpx_codec_get_cx_data'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `log_encoder_error':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:164: undefined reference to `vpx_codec_error'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:165: undefined reference to `vpx_codec_error_detail'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `codecctl_int':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:298: undefined reference to `vpx_codec_control_'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `vpx_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:524: undefined reference to `vpx_codec_get_caps'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:527: undefined reference to `vpx_codec_version_str'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:528: undefined reference to `vpx_codec_build_config'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:533: undefined reference to `vpx_codec_enc_config_default'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:534: undefined reference to `vpx_codec_err_to_string'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:719: undefined reference to `vpx_codec_enc_init_ver'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:727: undefined reference to `vpx_codec_enc_init_ver'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:812: undefined reference to `vpx_img_wrap'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:820: undefined reference to `vpx_img_wrap'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `vp8_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1279: undefined reference to `vpx_codec_vp8_cx'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `vp9_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1309: undefined reference to `vpx_codec_vp9_cx'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `codecctl_intp':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:320: undefined reference to `vpx_codec_control_'
../../../ffmpeg_build/lib//libavcodec.a(libvpxenc.o): In function `vpx_free':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:344: undefined reference to `vpx_codec_destroy'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:346: undefined reference to `vpx_codec_destroy'
../../../ffmpeg_build/lib//libavcodec.a(libx265.o): In function `libx265_encode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:84: undefined reference to `x265_api_get_173'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:86: undefined reference to `x265_api_get_173'
../../../ffmpeg_build/lib//libavcodec.a(libx265.o): In function `libx265_encode_init_csp':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:494: undefined reference to `x265_api_get_173'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:496: undefined reference to `x265_api_get_173'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:498: undefined reference to `x265_api_get_173'
../../../ffmpeg_build/lib//libavcodec.a(libvpx.o): In function `ff_vp9_init_static':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:73: undefined reference to `vpx_codec_vp9_cx'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:73: undefined reference to `vpx_codec_get_caps'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_close':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:191: undefined reference to `vorbis_block_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:192: undefined reference to `vorbis_dsp_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:193: undefined reference to `vorbis_info_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:194: undefined reference to `vorbis_comment_clear'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_frame':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:169: undefined reference to `vorbis_synthesis'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:175: undefined reference to `vorbis_synthesis_pcmout'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:179: undefined reference to `vorbis_synthesis_read'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:170: undefined reference to `vorbis_synthesis_blockin'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:48: undefined reference to `vorbis_info_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:49: undefined reference to `vorbis_comment_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:97: undefined reference to `vorbis_synthesis_headerin'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_close':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:191: undefined reference to `vorbis_block_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:192: undefined reference to `vorbis_dsp_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:193: undefined reference to `vorbis_info_clear'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:194: undefined reference to `vorbis_comment_clear'
../../../ffmpeg_build/lib//libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_init':
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:109: undefined reference to `vorbis_synthesis_init'
/home/ritter/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:110: undefined reference to `vorbis_block_init'
../../../ffmpeg_build/lib//libavutil.a(hwcontext_vaapi.o): In function `vaapi_device_create':
/home/ritter/ffmpeg_sources/ffmpeg/libavutil/hwcontext_vaapi.c:1490: undefined reference to `vaGetDisplay'
/home/ritter/ffmpeg_sources/ffmpeg/libavutil/hwcontext_vaapi.c:1514: undefined reference to `vaGetDisplayDRM'
../../../ffmpeg_build/lib//libavutil.a(hwcontext_vaapi.o): In function `vaapi_device_derive':
/home/ritter/ffmpeg_sources/ffmpeg/libavutil/hwcontext_vaapi.c:1561: undefined reference to `vaGetDisplayDRM'
../../../ffmpeg_build/lib//libavutil.a(hwcontext_vdpau.o): In function `vdpau_device_create':
/home/ritter/ffmpeg_sources/ffmpeg/libavutil/hwcontext_vdpau.c:461: undefined reference to `vdp_device_create_x11'
collect2: error: ld returned 1 exit status
So, what can I do, to get it compiled and linked fully?
Related
At the institution I work for we have a User Exit made in Pro*C (SQL embedded in C language). We are having some troubles because identical shared libraries are generated when compiling different source files. These .so files have no symbols. Everything was working alright just a few days ago, but suddenly this trouble occurred. What can we do?
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libentorno.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libconexion.so
-rwxrwxr-x. 1 user_name user_name 27440 Dec 23 11:27 libmsg.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libgralib.so
-rwxrwxr-x. 1 user_name user_name 88968 Dec 23 11:27 libeval.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libifcp0160.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libifcp0150.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libobn_calculo.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libdvo.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libobn.so
-rwxrwxr-x. 1 user_name user_name 7680 Dec 23 11:27 libmasiva.so
-rwxrwxr-x. 1 user_name user_name 2404472 Dec 23 11:28 libtax.so
We also cannot compile separate binary executables:
$ make -f ~/build/tax.mk ejecutable EXE=pmca0010
Procesando .pc -> .c
/usr/lib/oracle/18.5/client64/bin/proc sqlcheck=semantics dbms=v8 userid=tax/manejoint#taxd release_cursor=no hold_cursor=yes maxopencursors=100 include=/usr/lib/oracle/18.5/client64/rdbms/public include=/home/user_name/user_exit/src/inc iname=/home/user_name/user_exit/src/pc/pmca0010.pc
Pro*C/C++: Release 18.0.0.0.0 - Production on Thu Dec 23 11:29:26 2021
Version 18.5.0.0.0
Copyright (c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /usr/lib/oracle/18.5/client64/precomp/admin/pcscfg.cfg
Procesando .c -> .o
gcc -c -fPIC -g -I/usr/include/oracle/18.5/client64/ -I/usr/lib/oracle/18.5/client64/rdbms/public -I/home/user_name/user_exit/src/inc -o /home/user_name/user_exit/src/pc/pmca0010.o /home/user_name/user_exit/src/pc/pmca0010.c
Generando pmca0010...
gcc -L/usr/lib/oracle/18.5/client64/lib/ -L/home/user_name/user_exit/lib -lifcp0150 -lmsg -lifcp0160 -lobn -lgralib -ldvo -leval -lobn_calculo -lmasiva -lconexion -lclntsh -lcrypt -lrt \
-o /home/user_name/user_exit/src/pc/pmca0010 /home/user_name/user_exit/src/pc/pmca0010.o
/usr/bin/ld: warning: libentorno.so, needed by /home/user_name/user_exit/lib/libconexion.so, not found (try using -rpath or -rpath-link)
/home/user_name/user_exit/src/pc/pmca0010.o: In function `main':
/home/user_name/user_exit/src/pc/pmca0010.c:3942: undefined reference to `error_func'
/home/user_name/user_exit/src/pc/pmca0010.c:3944: undefined reference to `ParametrosOracle'
/home/user_name/user_exit/src/pc/pmca0010.c:3970: undefined reference to `f_utl_file'
/home/user_name/user_exit/src/pc/pmca0010.c:3974: undefined reference to `SetArchivoErr'
/home/user_name/user_exit/src/pc/pmca0010.c:3975: undefined reference to `SetArchivoLog'
/home/user_name/user_exit/src/pc/pmca0010.c:3976: undefined reference to `SetArchivoDebug'
/home/user_name/user_exit/src/pc/pmca0010.c:3981: undefined reference to `g_archivo_trace_uex'
/home/user_name/user_exit/src/pc/pmca0010.c:3987: undefined reference to `g_archivo_trace_uex'
/home/user_name/user_exit/src/pc/pmca0010.c:3995: undefined reference to `f_debug'
/home/user_name/user_exit/src/pc/pmca0010.c:4044: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4046: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4047: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4070: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4138: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4164: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4177: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4178: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4179: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4180: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4181: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.o:/home/user_name/user_exit/src/pc/pmca0010.c:4182: more undefined references to `DebugAArchivo' follow
/home/user_name/user_exit/src/pc/pmca0010.o: In function `main':
/home/user_name/user_exit/src/pc/pmca0010.c:4240: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4246: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4287: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4293: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4341: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4347: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4365: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4370: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.o: In function `get_usuario':
/home/user_name/user_exit/src/pc/pmca0010.c:4390: undefined reference to `LeerVariableEntorno'
/home/user_name/user_exit/src/pc/pmca0010.c:4399: undefined reference to `LeerVariableEntorno'
/home/user_name/user_exit/src/pc/pmca0010.o: In function `obn_generar_masiva_paralelo':
/home/user_name/user_exit/src/pc/pmca0010.c:4549: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4550: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4551: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4561: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4663: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4664: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4669: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4683: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4684: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4685: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4686: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.o:/home/user_name/user_exit/src/pc/pmca0010.c:4688: more undefined references to `DebugAArchivo' follow
/home/user_name/user_exit/src/pc/pmca0010.o: In function `obn_generar_masiva_paralelo':
/home/user_name/user_exit/src/pc/pmca0010.c:4771: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4772: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4780: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4781: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:4903: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:4919: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5138: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5148: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5252: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5267: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5270: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5372: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5379: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5382: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5391: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5451: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5463: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5464: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5493: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5562: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5578: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5580: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5680: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5687: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5694: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5698: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5699: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5710: undefined reference to `RecuperarCreditoMasiva'
/home/user_name/user_exit/src/pc/pmca0010.c:5716: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5723: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5729: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5746: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5757: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5758: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5759: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5760: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5762: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5763: undefined reference to `obn_srv_obligacion_masiva'
/home/user_name/user_exit/src/pc/pmca0010.c:5788: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5789: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5790: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5798: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5816: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5824: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5826: undefined reference to `grabar_error_masiva_objetos'
/home/user_name/user_exit/src/pc/pmca0010.c:5828: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5829: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5839: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5840: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5848: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5866: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5874: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5876: undefined reference to `grabar_error_masiva_objetos'
/home/user_name/user_exit/src/pc/pmca0010.c:5878: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5879: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5889: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5892: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5893: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.o:/home/user_name/user_exit/src/pc/pmca0010.c:5904: more undefined references to `DebugAArchivo' follow
/home/user_name/user_exit/src/pc/pmca0010.o: In function `obn_generar_masiva_paralelo':
/home/user_name/user_exit/src/pc/pmca0010.c:5923: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5932: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5934: undefined reference to `grabar_error_masiva_objetos'
/home/user_name/user_exit/src/pc/pmca0010.c:5936: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5950: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5969: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:5978: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5979: undefined reference to `grabar_error_masiva_objetos'
/home/user_name/user_exit/src/pc/pmca0010.c:5980: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:5994: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6038: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:6049: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6070: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:6085: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6142: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:6147: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6154: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6208: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:6284: undefined reference to `LogError'
/home/user_name/user_exit/src/pc/pmca0010.c:6289: undefined reference to `DebugAArchivo'
/home/user_name/user_exit/src/pc/pmca0010.c:6313: undefined reference to `LogError'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_PROPORCIONAL_BAJA'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2020B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_MONTO_EX'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2014'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AMAX_ADIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2001'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AMIN_ADIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2016B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_DEVENGADO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_APLICA_TOPE'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_CUOTA'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_PORCENTAJE_EX'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `PLAN_PAGO_CALCULAR'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2015'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2002'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_FIJO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `CALCULAR_ADICIONAL'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_ALICUOTA'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2018B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2019B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AMIN_ALIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2016'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_TRATAMIENTO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_VARIACION_PORCENTUAL'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_AUTOMOTOR_1999'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2017'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `INTERES_RESARCITORIO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2021B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2018'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_INTERES_SI_NO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AVMIN_ALIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2013B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AVMAX_ALIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_DIF_CENSO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AMAX_ALIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_IMPORTE_EX'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2017B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2019'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_FACTURADO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_AVALUO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2015B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2006'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_PROPORCIONAL'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_TIPO_SUJETO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AVMIN_ADIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_CANT_MULTAS'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2020'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AVMAX_ADIC'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_TIPO_EX'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_IMPUESTO_MIN'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2021'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `GET_CREDITO'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `SET_IME_AMAX_ALIC_RUR'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2014B'
/home/user_name/user_exit/lib/libeval.so: undefined reference to `IMPUESTO_INMUEBLE_2013'
collect2: error: ld returned 1 exit status
make: *** [ejecutable] Error 1
rm /home/user_name/user_exit/src/pc/pmca0010.c
The libraries produced by the compiler do not have symbols:
$ nm libgralib.so
0000000000201028 B __bss_start
0000000000201028 b completed.6355
w __cxa_finalize##GLIBC_2.2.5
0000000000000540 t deregister_tm_clones
00000000000005b0 t __do_global_dtors_aux
0000000000200dd0 t __do_global_dtors_aux_fini_array_entry
0000000000200de0 d __dso_handle
0000000000200de8 d _DYNAMIC
0000000000201028 D _edata
0000000000201030 B _end
0000000000000628 T _fini
00000000000005f0 t frame_dummy
0000000000200dc8 t __frame_dummy_init_array_entry
0000000000000638 r __FRAME_END__
0000000000201000 d _GLOBAL_OFFSET_TABLE_
w __gmon_start__
00000000000004f0 T _init
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000200dd8 d __JCR_END__
0000000000200dd8 d __JCR_LIST__
w _Jv_RegisterClasses
0000000000000570 t register_tm_clones
0000000000201028 d __TMC_END__
Thank you
PS: Some of the files generated are EXACTLY the same:
$ md5sum *.so | sort
3f3a8fba409013b23ff52a25ef1a292d libifcp0150.so
440c761aac25771468e384e71977a50c libentorno.so
440c761aac25771468e384e71977a50c libifcp0160.so
52b79262a71da8ed1559ce8f644f512d libobn.so
70be43604caa02b188e8f703e6edcf7e libdvo.so
70be43604caa02b188e8f703e6edcf7e libobn_calculo.so
8bfc42eb45a0cfd5cf8a5e62b73e99b2 libmasiva.so
9b4c31fe428a62af7d3334938a594977 libconexion.so
b3916ef1db33449a21a06c7f2d4f05cc libgralib.so
ce825bb91af0ea64d50e34fcd3188d43 libmsg.so
d8e31590af6725a7a866f671b9e13aaa libeval.so
e2780910964cf8287346e9f2495aff89 libtax.so
Also, when I try to compile a binary:
$ make -f ~/build/tax.mk ejecutable EXE=pmca0010
Procesando .pc -> .c
/usr/lib/oracle/18.5/client64/bin/proc sqlcheck=semantics dbms=v8 userid=tax/manejoint release_cursor=no hold_cursor=yes maxopencursors=100 include=/usr/lib/oracle/18.5/client64/rdbms/public include=../src/inc iname=../src/pc/pmca0010.pc
Pro*C/C++: Release 18.0.0.0.0 - Production on Mon Dec 27 12:00:16 2021
Version 18.5.0.0.0
Copyright (c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /usr/lib/oracle/18.5/client64/precomp/admin/pcscfg.cfg
Procesando .c -> .o
gcc -c -fPIC -g -I/usr/include/oracle/18.5/client64/ -I/usr/lib/oracle/18.5/client64/rdbms/public -I../src/inc -o ../src/pc/pmca0010.o ../src/pc/pmca0010.c
Generando pmca0010...
gcc -L/usr/lib/oracle/18.5/client64/lib/ -L../lib -lifcp0150 -lmsg -lifcp0160 -lobn -lgralib -ldvo -leval -lobn_calculo -lmasiva -lconexion -lclntsh -lcrypt -lrt \
-o ../src/pc/pmca0010 ../src/pc/pmca0010.o
/usr/bin/ld: ../src/pc/pmca0010.o: undefined reference to symbol 'LeerVariableEntorno'
/app/tax/lib/libentorno.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [ejecutable] Error 1
rm ../src/pc/pmca0010.c
Everything was working alright just a few days ago, but suddenly this trouble occurred.
A guess: you've modified your ~/build/tax.mk makefile (or something it includes).
What can we do?
Use appropriate revision control system, so you know what's changed, why and when.
This command line:
gcc -L/usr/lib/oracle/18.5/client64/lib/ -L/home/user_name/user_exit/lib \
-lifcp0150 -lmsg -lifcp0160 -lobn -lgralib -ldvo -leval -lobn_calculo \
-lmasiva -lconexion -lclntsh -lcrypt -lrt \
-o /home/user_name/user_exit/src/pc/pmca0010 \
/home/user_name/user_exit/src/pc/pmca0010.o
is wrong. It should be:
gcc /home/user_name/user_exit/src/pc/pmca0010.o \
-L/... -L/... -lifcp0150 -lmsg -lifcp0160 ... \
To understand why libraries should follow object files on the command line, read this or this.
I am trying to use C, MINGW and GLFW to create a program and I keep on getting this error when compiling.
cc1.exe: warning: unrecognized gcc debugging option: y
cc1.exe: warning: unrecognized gcc debugging option: n
cc1.exe: warning: unrecognized gcc debugging option: m
cc1.exe: warning: unrecognized gcc debugging option: i
cc1.exe: warning: unrecognized gcc debugging option: c
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x127): undefined reference to `CreateDCW#16'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x160): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x179): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x1ca): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x24b): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x291): undefined reference to `DeleteDC#4'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x9ee): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0xa07): undefined reference to `GetDeviceCaps#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0xe9f): undefined reference to `CreateDCW#16'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0xeba): undefined reference to `GetDeviceGammaRamp#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0xec8): undefined reference to `DeleteDC#4'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x100e): undefined reference to `CreateDCW#16'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x1029): undefined reference to `SetDeviceGammaRamp#8'
./libs/libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x1037): undefined reference to `DeleteDC#4'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0x1f3): undefined reference to `CreateDIBSection#24'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0x262): undefined reference to `CreateBitmap#20'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0x28d): undefined reference to `DeleteObject#4'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0x37b): undefined reference to `DeleteObject#4'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0x389): undefined reference to `DeleteObject#4'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0xb55): undefined reference to `CreateRectRgn#16'
./libs/libglfw3.a(win32_window.c.obj):win32_window.c:(.text+0xc2c): undefined reference to `DeleteObject#4'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x6c4): undefined reference to `DescribePixelFormat#16'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xbbd): undefined reference to `DescribePixelFormat#16'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xf46): undefined reference to `SwapBuffers#4'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x1254): undefined reference to `ChoosePixelFormat#8'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x126f): undefined reference to `SetPixelFormat#12'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x1592): undefined reference to `DescribePixelFormat#16'
./libs/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x15d9): undefined reference to `SetPixelFormat#12'
collect2.exe: error: ld returned 1 exit status
This is my code
#include "GLFW/glfw3.h"
#include <stdio.h>
#define GLFW_INCLUDE_GLCOREARB
int main() {
GLFWwindow* window;
if (!glfwInit()) return -1;
window = glfwCreateWindow(640, 480, "Test", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
while (!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
So its basically just the given example on glfw website.
I use this command to build:
gcc -o Test.o Main.c -IGLFW -IGL -dynamic ./libs/glfw3.dll ./libs/glew32.dll -lopengl32 -static ./libs/libglfw3.a ./libs/glew32.lib ./libs/glew32s.lib
I dont have any issues with compiling the glfw but I have problems with GLEW, maybe it is because it is lib files instead of a.
I'm trying to compile the following program in Main.c:
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
int main()
{
glfwInit();
return 0;
}
I compile it with:
gcc -m64 -c -g -I"libs/vulkan/include" -I"libs/GLFW/include" -std=c11 -MMD -MP -MF "bin/main.o.d" -o bin/main.o src/Main.c
and link it with:
gcc -m64 -o bin/vulkanfirsttest.exe bin/main.o -L"libs/vulkan/lib" -L"libs/GLFW/lib" -L"C:/msys64/mingw64/lib" -lvulkan-1 -lglfw3 -lgdiplus
It compiles successfully but when I try to link it, it spits out the following errors:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0x8e): undefined reference to `__imp_CreateDCW'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xc8): undefined reference to `__imp_GetDeviceCaps'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0x123): undefined reference to `__imp_DeleteDC'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0x263): undefined reference to `__imp_GetDeviceCaps'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0x88b): undefined reference to `__imp_GetDeviceCaps'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0x9db): undefined reference to `__imp_GetDeviceCaps'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xdaa): undefined reference to `__imp_CreateDCW'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xdb9): undefined reference to `__imp_GetDeviceGammaRamp'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xdc2): undefined reference to `__imp_DeleteDC'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xf37): undefined reference to `__imp_CreateDCW'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xf46): undefined reference to `__imp_SetDeviceGammaRamp'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_monitor.c.obj):(.text+0xf4f): undefined reference to `__imp_DeleteDC'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x21a): undefined reference to `__imp_CreateDIBSection'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x253): undefined reference to `__imp_CreateBitmap'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x304): undefined reference to `__imp_DeleteObject'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x397): undefined reference to `__imp_DeleteObject'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x432): undefined reference to `__imp_CreateRectRgn'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(win32_window.c.obj):(.text+0x4ab): undefined reference to `__imp_DeleteObject'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0x16a): undefined reference to `__imp_SwapBuffers'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0x42d): undefined reference to `__imp_ChoosePixelFormat'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0x43b): undefined reference to `__imp_SetPixelFormat'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0xc97): undefined reference to `__imp_DescribePixelFormat'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0xe81): undefined reference to `__imp_DescribePixelFormat'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0xe9b): undefined reference to `__imp_SetPixelFormat'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libs/GLFW/lib/libglfw3.a(wgl_context.c.obj):(.text+0x1498): undefined reference to `__imp_DescribePixelFormat'
I found a post that had a similar problem, and the answer was to also link gdi32, but there isn't a gdi32 package in mysys2. There is gdiplus (mingw64/mingw-w64-x86_64-libgdiplus 5.6.1-1), but as you can see that doesn't help.
I using CLion to write my project,Windows 10 is my OS.
I use MinGw to compile the source code with CMAKE,
and following the wrong message
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mgr_init':
C:/Users/admin/Desktop/TB2/mongoose.c:2023: undefined reference to `WSAStartup#8'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mgr_free':
C:/Users/admin/Desktop/TB2/mongoose.c:2081: undefined reference to `closesocket#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2082: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_resolve2':
C:/Users/admin/Desktop/TB2/mongoose.c:2139: undefined reference to `gethostbyname#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_resolve':
C:/Users/admin/Desktop/TB2/mongoose.c:2151: undefined reference to `inet_ntoa#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_parse_address':
C:/Users/admin/Desktop/TB2/mongoose.c:2226: undefined reference to `htonl#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2227: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2238: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2246: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_do_connect':
C:/Users/admin/Desktop/TB2/mongoose.c:2565: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2565: undefined reference to `inet_ntoa#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_broadcast':
C:/Users/admin/Desktop/TB2/mongoose.c:2763: undefined reference to `send#16'
C:/Users/admin/Desktop/TB2/mongoose.c:2765: undefined reference to `recv#16'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_set_non_blocking_mode':
C:/Users/admin/Desktop/TB2/mongoose.c:2861: undefined reference to `ioctlsocket#12'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_is_error':
C:/Users/admin/Desktop/TB2/mongoose.c:2881: undefined reference to `WSAGetLastError#0'
C:/Users/admin/Desktop/TB2/mongoose.c:2882: undefined reference to `WSAGetLastError#0'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_if_connect_tcp':
C:/Users/admin/Desktop/TB2/mongoose.c:2890: undefined reference to `socket#12'
C:/Users/admin/Desktop/TB2/mongoose.c:2899: undefined reference to `connect#12'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_if_connect_udp':
C:/Users/admin/Desktop/TB2/mongoose.c:2905: undefined reference to `socket#12'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_if_destroy_conn':
C:/Users/admin/Desktop/TB2/mongoose.c:2950: undefined reference to `closesocket#4'
C:/Users/admin/Desktop/TB2/mongoose.c:2953: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_accept_conn':
C:/Users/admin/Desktop/TB2/mongoose.c:2970: undefined reference to `accept#12'
C:/Users/admin/Desktop/TB2/mongoose.c:2977: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_open_listening_socket':
C:/Users/admin/Desktop/TB2/mongoose.c:3001: undefined reference to `socket#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3006: undefined reference to `setsockopt#20'
C:/Users/admin/Desktop/TB2/mongoose.c:3024: undefined reference to `bind#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3025: undefined reference to `listen#8'
C:/Users/admin/Desktop/TB2/mongoose.c:3029: undefined reference to `getsockname#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3032: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_write_to_socket':
C:/Users/admin/Desktop/TB2/mongoose.c:3051: undefined reference to `sendto#24'
C:/Users/admin/Desktop/TB2/mongoose.c:3053: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3053: undefined reference to `inet_ntoa#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3082: undefined reference to `send#16'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_read_from_socket':
C:/Users/admin/Desktop/TB2/mongoose.c:3127: undefined reference to `recv#16'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_recvfrom':
C:/Users/admin/Desktop/TB2/mongoose.c:3149: undefined reference to `recvfrom#24'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_handle_udp_read':
C:/Users/admin/Desktop/TB2/mongoose.c:3162: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3162: undefined reference to `inet_ntoa#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mgr_handle_conn':
C:/Users/admin/Desktop/TB2/mongoose.c:3227: undefined reference to `getsockopt#20'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mgr_handle_ctl_sock':
C:/Users/admin/Desktop/TB2/mongoose.c:3287: undefined reference to `recv#16'
C:/Users/admin/Desktop/TB2/mongoose.c:3289: undefined reference to `send#16'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mgr_poll':
C:/Users/admin/Desktop/TB2/mongoose.c:3547: undefined reference to `select#20'
C:/Users/admin/Desktop/TB2/mongoose.c:3553: undefined reference to `__WSAFDIsSet#8'
C:/Users/admin/Desktop/TB2/mongoose.c:3561: undefined reference to `__WSAFDIsSet#8'
C:/Users/admin/Desktop/TB2/mongoose.c:3562: undefined reference to `__WSAFDIsSet#8'
C:/Users/admin/Desktop/TB2/mongoose.c:3563: undefined reference to `__WSAFDIsSet#8'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_socketpair':
C:/Users/admin/Desktop/TB2/mongoose.c:3604: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3605: undefined reference to `htonl#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3607: undefined reference to `socket#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3608: undefined reference to `bind#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3609: undefined reference to `listen#8'
C:/Users/admin/Desktop/TB2/mongoose.c:3610: undefined reference to `getsockname#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3611: undefined reference to `socket#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3612: undefined reference to `connect#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3614: undefined reference to `getsockname#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3615: undefined reference to `connect#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3617: undefined reference to `accept#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3622: undefined reference to `closesocket#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3627: undefined reference to `closesocket#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3628: undefined reference to `closesocket#4'
C:/Users/admin/Desktop/TB2/mongoose.c:3629: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_sock_get_addr':
C:/Users/admin/Desktop/TB2/mongoose.c:3643: undefined reference to `getpeername#12'
C:/Users/admin/Desktop/TB2/mongoose.c:3645: undefined reference to `getsockname#12'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `deliver_websocket_data':
C:/Users/admin/Desktop/TB2/mongoose.c:4091: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:4094: undefined reference to `ntohl#4'
C:/Users/admin/Desktop/TB2/mongoose.c:4095: undefined reference to `ntohl#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_send_ws_header':
C:/Users/admin/Desktop/TB2/mongoose.c:4193: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:4200: undefined reference to `htonl#4'
C:/Users/admin/Desktop/TB2/mongoose.c:4202: undefined reference to `htonl#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `wait_until_ready':
C:/Users/admin/Desktop/TB2/mongoose.c:5806: undefined reference to `select#20'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `push_to_stdin':
C:/Users/admin/Desktop/TB2/mongoose.c:5815: undefined reference to `recv#16'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `pull_from_stdout':
C:/Users/admin/Desktop/TB2/mongoose.c:5837: undefined reference to `send#16'
C:/Users/admin/Desktop/TB2/mongoose.c:5844: undefined reference to `shutdown#8'
C:/Users/admin/Desktop/TB2/mongoose.c:5845: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `start_process':
C:/Users/admin/Desktop/TB2/mongoose.c:5931: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `handle_cgi':
C:/Users/admin/Desktop/TB2/mongoose.c:6241: undefined reference to `closesocket#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_send_http_file':
C:/Users/admin/Desktop/TB2/mongoose.c:6333: undefined reference to `ntohl#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_sock_addr_to_str':
C:/Users/admin/Desktop/TB2/mongoose.c:6725: undefined reference to `inet_ntoa#4'
C:/Users/admin/Desktop/TB2/mongoose.c:6731: undefined reference to `ntohs#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `parse_mqtt':
C:/Users/admin/Desktop/TB2/mongoose.c:7137: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7141: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7148: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7157: undefined reference to `ntohs#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_send_mqtt_handshake_opt':
C:/Users/admin/Desktop/TB2/mongoose.c:7225: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7228: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mqtt_publish':
C:/Users/admin/Desktop/TB2/mongoose.c:7261: undefined reference to `htons#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7262: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_mqtt_subscribe':
C:/Users/admin/Desktop/TB2/mongoose.c:7280: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj):C:/Users/admin/Desktop/TB2/mongoose.c:7285: more undefined references to `htons#4' follow
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_dns_encode_record':
C:/Users/admin/Desktop/TB2/mongoose.c:7699: undefined reference to `htonl#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7714: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_send_dns_query':
C:/Users/admin/Desktop/TB2/mongoose.c:7751: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_parse_dns':
C:/Users/admin/Desktop/TB2/mongoose.c:7823: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7824: undefined reference to `ntohs#4'
C:/Users/admin/Desktop/TB2/mongoose.c:7825: undefined reference to `ntohs#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `dns_handler':
C:/Users/admin/Desktop/TB2/mongoose.c:7906: undefined reference to `htons#4'
CMakeFiles\TB2.dir/objects.a(mongoose.c.obj): In function `mg_resolve_from_hosts_file':
C:/Users/admin/Desktop/TB2/mongoose.c:8132: undefined reference to `htonl#4'
collect2.exe: error: ld returned 1 exit status
CMakeFiles\TB2.dir\build.make:225: recipe for target 'TB2.exe' failed
mingw32-make.exe[2]: *** [TB2.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles/TB2.dir/all] Error 2
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/TB2.dir/all' failed
Makefile:82: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2
and my Cmake write like this
cmake_minimum_required(VERSION 3.3)
project(TB2)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")
set(CMAKE_C_FLAGS "-std=c99 -static-libgcc -w -lpthread -lws2_32 -fopenmp -lwsock32")
set(SOURCE_FILES main.c r2nat_to_local.h mongoose.c mongoose.h sqlite3.c sqlite3.h TUtility.c TUtility.h cJSON.c cJSON.h url_parser.c url_parser.h)
add_executable(TB2 ${SOURCE_FILES})
target_link_libraries(TB2 sqlite3)
add_definitions(-DUNICODE -D_UNICODE -DMG_ENABLE_THREADS -DDEBUG -DDEBUG -DHAVE_MD5 -DRA100)
I don't know where is worng. After I add -lws2_32 -fopenmp -lwsock32
How to fix the error?
I want to use standard c function in one of my function
void print(const char* format,...) {
char buffer[256];
va_list args;
va_start (args, format);
vsnprintf (buffer,256,format, args);
va_end (args);
sendString(buffer);
}
Error coming is
arm-none-eabi-ld -o check.elf -T /home/sanju/Arm/check/other/ROM.ld Serial.o irq.o lowlevel.o main.o startup.o \
-L/usr/arm-none-eabi/lib -lc -lg -lm
/usr/arm-none-eabi/lib/libc.a(lib_a-svfprintf.o): In function `_svfprintf_r':
vfprintf.c:(.text+0x688): undefined reference to `__aeabi_dcmplt'
vfprintf.c:(.text+0xdfc): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x10b4): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x168c): undefined reference to `__aeabi_uldivmod'
vfprintf.c:(.text+0x16a8): undefined reference to `__aeabi_uldivmod'
vfprintf.c:(.text+0x1a48): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x1eac): undefined reference to `__aeabi_dcmpeq'
/usr/arm-none-eabi/lib/libc.a(lib_a-dtoa.o): In function `quorem':
dtoa.c:(.text+0x3c): undefined reference to `__aeabi_uidiv'
/usr/arm-none-eabi/lib/libc.a(lib_a-dtoa.o): In function `_dtoa_r':
dtoa.c:(.text+0x274): undefined reference to `__aeabi_dcmpeq'
dtoa.c:(.text+0x360): undefined reference to `__aeabi_ui2d'
dtoa.c:(.text+0x37c): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x388): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x394): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0x3a4): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x3b0): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x3c4): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0x3d0): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0x3e8): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0x418): undefined reference to `__aeabi_dcmpgt'
dtoa.c:(.text+0x5a8): undefined reference to `__aeabi_ddiv'
dtoa.c:(.text+0x5ac): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0x5b4): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x5c0): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x5d4): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x608): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x61c): undefined reference to `__aeabi_dcmpeq'
dtoa.c:(.text+0x650): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x664): undefined reference to `__aeabi_dcmpeq'
dtoa.c:(.text+0x684): undefined reference to `__aeabi_ddiv'
dtoa.c:(.text+0x688): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0x690): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x69c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x6b0): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x6fc): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0x718): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0x73c): undefined reference to `__aeabi_dcmpeq'
dtoa.c:(.text+0xa94): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0xaa0): undefined reference to `__aeabi_dcmpeq'
dtoa.c:(.text+0xbf8): undefined reference to `__aeabi_ddiv'
dtoa.c:(.text+0xc2c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0xc58): undefined reference to `__aeabi_ddiv'
dtoa.c:(.text+0xc80): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0xc90): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0xc9c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0xca8): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0xce8): undefined reference to `__aeabi_ddiv'
dtoa.c:(.text+0xcf4): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xd08): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0xd10): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0xd24): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xd54): undefined reference to `__aeabi_dcmpgt'
dtoa.c:(.text+0xd78): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xd8c): undefined reference to `__aeabi_dcmpgt'
dtoa.c:(.text+0xdd0): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xddc): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0xe00): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0xe1c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0xe28): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0xe30): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0xe44): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xe64): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0xef0): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0xefc): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0xf08): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0xf24): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0xf38): undefined reference to `__aeabi_dcmpgt'
dtoa.c:(.text+0xf54): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0x10c0): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x10e8): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x1130): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x1144): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0x114c): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x1160): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x119c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x11a8): undefined reference to `__aeabi_d2iz'
dtoa.c:(.text+0x11b0): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x11c8): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x1200): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0x120c): undefined reference to `__aeabi_dcmplt'
dtoa.c:(.text+0x12cc): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x12d8): undefined reference to `__aeabi_dcmpge'
dtoa.c:(.text+0x158c): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x159c): undefined reference to `__aeabi_i2d'
dtoa.c:(.text+0x15b0): undefined reference to `__aeabi_dmul'
dtoa.c:(.text+0x15bc): undefined reference to `__aeabi_dadd'
dtoa.c:(.text+0x15ec): undefined reference to `__aeabi_dsub'
dtoa.c:(.text+0x15f8): undefined reference to `__aeabi_dcmpgt'
/usr/arm-none-eabi/lib/libc.a(lib_a-mprec.o): In function `__ratio':
mprec.c:(.text+0xbc0): undefined reference to `__aeabi_ddiv'
/usr/arm-none-eabi/lib/libc.a(lib_a-mprec.o): In function `_mprec_log10':
mprec.c:(.text+0xbf0): undefined reference to `__aeabi_dmul'
/usr/arm-none-eabi/lib/libc.a(lib_a-svfiprintf.o): In function `_svfiprintf_r':
vfprintf.c:(.text+0xf30): undefined reference to `__aeabi_uldivmod'
vfprintf.c:(.text+0xf4c): undefined reference to `__aeabi_uldivmod'
make: *** [all] Error 1
*** Failure: Exit code 2 ***
My makefile is this
TOOLCHAIN=arm-none-eabi-
ARM_CPU=arm7tdmi
VPATH= /home/sanju/Arm/check/src /home/sanju/Arm/check/other /home/sanju/Arm/check/include
INCLUDE= /home/sanju/Arm/check/include
CCFLAGS= -mcpu=$(ARM_CPU) -mthumb-interwork -ffunction-sections -Os -Wall
ASFLAGS= -mcpu=$(ARM_CPU) -mthumb-interwork -mfpu=softfpa -Wall
all: Serial.o irq.o lowlevel.o main.o startup.o
$(TOOLCHAIN)ld -o check.elf -T /home/sanju/Arm/check/other/ROM.ld Serial.o irq.o
lowlevel.o main.o startup.o \
-L/usr/arm-none-eabi/lib -lc -lg -lm
$(TOOLCHAIN)objcopy -O ihex check.elf check.hex
$(TOOLCHAIN)objcopy -O binary check.elf check.bin
Serial.o : Serial.c Serial.h
$(TOOLCHAIN)gcc $(CCFLAGS) -I$(INCLUDE) -c $<
irq.o : irq.c irq.h lpc214x.h
$(TOOLCHAIN)gcc $(CCFLAGS) -I$(INCLUDE) -c $<
lowlevel.o : lowlevel.c lowlevel.h
$(TOOLCHAIN)gcc $(CCFLAGS) -I$(INCLUDE) -c $<
main.o : main.c lpc214x.h timer0.h Asm.h lowlevel.h type.h Serial.h
$(TOOLCHAIN)gcc $(CCFLAGS) -I$(INCLUDE) -c $<
startup.o : startup.S
$(TOOLCHAIN)as $(ASFLAGS) -o startup.o $<
.PHONY: clean
clean :
rm -rf *.o *.elf *.hex *.o *.bin
In the target all it fails in linking. I have tried the example with arm-elf toolchain there also i am getting some errors.I have googled a lot for it but did not find any solution for it.
Try using gcc as ld frontend.
Change:
$(TOOLCHAIN)ld -o check.elf [...]
into
$(TOOLCHAIN)gcc -o check.elf [...]
GCC knows to add some necessary options when invoking ld.
Do things go any better when adding "-lgcc" to -L?
instead of using ld for linking i used gcc but it was including the supplied crt.o object file so i used -nostartfiles and it worked for me.