gitaeuber / mbrtu

modbus master tool for serial modbus communication (modbus RTU)
GNU General Public License v2.0
4 stars 4 forks source link

i can compile unter ubuntu 19.10 #6

Open gitpower2017 opened 4 years ago

gitpower2017 commented 4 years ago

Hello,

I habe install wth "get install libmodbus-dev" the Version 3.1.6-1 Then I have with git the "git clone https://github.com/gitaeuber/mbrtu"

root@rpi4:/usr/src/mbrtu# make cc -std=c99 -O3 -Wall -D_BSD_SOURCE -I/usr/include/modbus/ -lmodbus mbrtu.c -o mbrtu In file included from /usr/include/aarch64-linux-gnu/sys/types.h:25, from /usr/include/aarch64-linux-gnu/sys/param.h:25, from /usr/include/modbus/modbus.h:12, from mbrtu.h:25, from mbrtu.c:22: /usr/include/features.h:185:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] 185 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" | ^~~~~~~ In file included from mbrtu.c:22: mbrtu.c: In function ‘parse_call_parameter_options’: mbrtu.h:53:19: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] 53 | #define IF_DEBUG if (global_flags & MBRTU_FLAGS_DEBUG) | ^~ mbrtu.c:713:1: note: in expansion of macro ‘IF_DEBUG’ 713 | IF_DEBUG fprintf (stderr, "data type = 0x%x\n", call->type); | ^~~~~~~~ mbrtu.c:714:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’ 714 | break; | ^~~~~ /usr/bin/ld: /tmp/ccgaWImQ.o: in functionparse_n_opt': mbrtu.c:(.text+0x1d4): undefined reference to modbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x1d8): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x310): undefined reference to modbus_set_float_badc' /usr/bin/ld: mbrtu.c:(.text+0x314): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x31c): undefined reference to modbus_set_float_badc' /usr/bin/ld: mbrtu.c:(.text+0x320): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x32c): undefined reference to modbus_set_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0x330): undefined reference tomodbus_set_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0x338): undefined reference to modbus_set_float_cdab' /usr/bin/ld: mbrtu.c:(.text+0x33c): undefined reference tomodbus_set_float_cdab' /usr/bin/ld: /tmp/ccgaWImQ.o: in function print_data': mbrtu.c:(.text+0xc48): undefined reference tomodbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xc4c): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd10): undefined reference tomodbus_get_float_badc' /usr/bin/ld: mbrtu.c:(.text+0xd14): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd1c): undefined reference tomodbus_get_float_badc' /usr/bin/ld: mbrtu.c:(.text+0xd20): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd2c): undefined reference tomodbus_get_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0xd30): undefined reference to modbus_get_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0xd38): undefined reference tomodbus_get_float_cdab' /usr/bin/ld: mbrtu.c:(.text+0xd3c): undefined reference to modbus_get_float_cdab' /usr/bin/ld: /tmp/ccgaWImQ.o: in functionmake_call': mbrtu.c:(.text+0xdd0): undefined reference to modbus_set_slave' /usr/bin/ld: mbrtu.c:(.text+0xe2c): undefined reference tomodbus_read_input_registers' /usr/bin/ld: mbrtu.c:(.text+0xe60): undefined reference to modbus_connect' /usr/bin/ld: mbrtu.c:(.text+0xe9c): undefined reference tomodbus_write_register' /usr/bin/ld: mbrtu.c:(.text+0xf64): undefined reference to modbus_write_registers' /usr/bin/ld: mbrtu.c:(.text+0xff8): undefined reference tomodbus_strerror' /usr/bin/ld: mbrtu.c:(.text+0x103c): undefined reference to modbus_read_registers' /usr/bin/ld: mbrtu.c:(.text+0x1088): undefined reference tomodbus_strerror' /usr/bin/ld: /tmp/ccgaWImQ.o: in function parse_call_parameter_options': mbrtu.c:(.text+0x13f0): undefined reference tomodbus_set_debug' /usr/bin/ld: /tmp/ccgaWImQ.o: in function main': mbrtu.c:(.text.startup+0x11c): undefined reference tomodbus_new_rtu' /usr/bin/ld: mbrtu.c:(.text.startup+0x148): undefined reference to modbus_set_response_timeout' /usr/bin/ld: mbrtu.c:(.text.startup+0x174): undefined reference tomodbus_close' /usr/bin/ld: mbrtu.c:(.text.startup+0x180): undefined reference to modbus_free' /usr/bin/ld: mbrtu.c:(.text.startup+0x5a0): undefined reference tomodbus_set_debug' collect2: error: ld returned 1 exit status make: *** [Makefile:9: mbrtu] Error 1 `

I donh have a idee.

gitaeuber commented 4 years ago

Hallo gitpower2017,

es liegt vermutlich an der CPU-Architektur, die Sie verwenden. Das Programm habe ich nie für aarch64 getestet. Ich habe auch keine Möglichkeit dazu. Da ich kein Programmierer bin, kann ich das so ohne weiteres auch nicht beheben. Gerne können Sie aber Patches schicken.

Grüße Lars

On Fri, 21 Feb 2020 08:51:51 -0800 gitpower2017 notifications@github.com wrote:

Hello,

I habe install wth "get install libmodbus-dev" the Version 3.1.6-1 Then I have with git the "git clone https://github.com/gitaeuber/mbrtu"

root@rpi4:/usr/src/mbrtu# make cc -std=c99 -O3 -Wall -D_BSD_SOURCE -I/usr/include/modbus/ -lmodbus mbrtu.c -o mbrtu In file included from /usr/include/aarch64-linux-gnu/sys/types.h:25, from /usr/include/aarch64-linux-gnu/sys/param.h:25, from /usr/include/modbus/modbus.h:12, from mbrtu.h:25, from mbrtu.c:22: /usr/include/features.h:185:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] 185 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" | ^~~~~~~ In file included from mbrtu.c:22: mbrtu.c: In function ‘parse_call_parameter_options’: mbrtu.h:53:19: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] 53 | #define IF_DEBUG if (global_flags & MBRTU_FLAGS_DEBUG) | ^~ mbrtu.c:713:1: note: in expansion of macro ‘IF_DEBUG’ 713 | IF_DEBUG fprintf (stderr, "data type = 0x%x\n", call->type); | ^~~~~~~~ mbrtu.c:714:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’ 714 | break; | ^~~~~ /usr/bin/ld: /tmp/ccgaWImQ.o: in functionparse_n_opt': mbrtu.c:(.text+0x1d4): undefined reference to modbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x1d8): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x310): undefined reference to modbus_set_float_badc' /usr/bin/ld: mbrtu.c:(.text+0x314): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x31c): undefined reference to modbus_set_float_badc' /usr/bin/ld: mbrtu.c:(.text+0x320): undefined reference tomodbus_set_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0x32c): undefined reference to modbus_set_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0x330): undefined reference tomodbus_set_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0x338): undefined reference to modbus_set_float_cdab' /usr/bin/ld: mbrtu.c:(.text+0x33c): undefined reference tomodbus_set_float_cdab' /usr/bin/ld: /tmp/ccgaWImQ.o: in function print_data': mbrtu.c:(.text+0xc48): undefined reference tomodbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xc4c): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd10): undefined reference tomodbus_get_float_badc' /usr/bin/ld: mbrtu.c:(.text+0xd14): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd1c): undefined reference tomodbus_get_float_badc' /usr/bin/ld: mbrtu.c:(.text+0xd20): undefined reference to modbus_get_float_abcd' /usr/bin/ld: mbrtu.c:(.text+0xd2c): undefined reference tomodbus_get_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0xd30): undefined reference to modbus_get_float_dcba' /usr/bin/ld: mbrtu.c:(.text+0xd38): undefined reference tomodbus_get_float_cdab' /usr/bin/ld: mbrtu.c:(.text+0xd3c): undefined reference to modbus_get_float_cdab' /usr/bin/ld: /tmp/ccgaWImQ.o: in functionmake_call': mbrtu.c:(.text+0xdd0): undefined reference to modbus_set_slave' /usr/bin/ld: mbrtu.c:(.text+0xe2c): undefined reference tomodbus_read_input_registers' /usr/bin/ld: mbrtu.c:(.text+0xe60): undefined reference to modbus_connect' /usr/bin/ld: mbrtu.c:(.text+0xe9c): undefined reference tomodbus_write_register' /usr/bin/ld: mbrtu.c:(.text+0xf64): undefined reference to modbus_write_registers' /usr/bin/ld: mbrtu.c:(.text+0xff8): undefined reference tomodbus_strerror' /usr/bin/ld: mbrtu.c:(.text+0x103c): undefined reference to modbus_read_registers' /usr/bin/ld: mbrtu.c:(.text+0x1088): undefined reference tomodbus_strerror' /usr/bin/ld: /tmp/ccgaWImQ.o: in function parse_call_parameter_options': mbrtu.c:(.text+0x13f0): undefined reference tomodbus_set_debug' /usr/bin/ld: /tmp/ccgaWImQ.o: in function main': mbrtu.c:(.text.startup+0x11c): undefined reference tomodbus_new_rtu' /usr/bin/ld: mbrtu.c:(.text.startup+0x148): undefined reference to modbus_set_response_timeout' /usr/bin/ld: mbrtu.c:(.text.startup+0x174): undefined reference tomodbus_close' /usr/bin/ld: mbrtu.c:(.text.startup+0x180): undefined reference to modbus_free' /usr/bin/ld: mbrtu.c:(.text.startup+0x5a0): undefined reference tomodbus_set_debug' collect2: error: ld returned 1 exit status make: *** [Makefile:9: mbrtu] Error 1 `

I donh have a idee.

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/gitaeuber/mbrtu/issues/6

-- Schöne Grüße Lars Täuber

sven28472 commented 1 year ago

for me it worked simply to move the LDFLAGS behind the SRCS:

`diff --git a/Makefile b/Makefile index e02d5c1..3e3c621 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ SRCS=mbrtu.c all: mbrtu

mbrtu: $(SRCS) mbrtu.h