I am using automake to build my project. My project uses pthread and libsocketcan. I have installed libsocketcan with the command
sudo apt-get install libsocketcan-dev
In eclpise I have added linker flags for pthread and libsocketcan. The code will compile and run. When I run my automake script the build fails with the error.
gcc: error: unrecognized command line option ‘-socketcan’[![enter image description here][1]][1]
My makefile.am is as follows:
AUTOMAKE_OPTIONS = foreign subdir-objects
bin_PROGRAMS = MAIN_Application
LDFLAGS = \
-pthread \
-socketcan
AM_CPPFLAGS = \
-I$(srcdir)/include \
-I$(srcdir)/include/utilities \
-I$(srcdir)/include/comms
MAIN_Application_SOURCES = \
src/main.c \
src/scheduler.c \
src/utilities/time_conversions.c \
src/utilities/ring_buffer.c \
src/utilities/logger.c \
src/comms/can.c
If I remove all code and references here to socketcan, everything works fine. I get a nice application binary that can run threads. Once I add can I can no longer build. I have tried with the LDFLAGS socketcan, libsocketcan and libsocketcan-dev.
What LDFLAG do I need in my makefile to properly include libsocketcan?
You do not need any "LDFLAG" for this. LDFLAGS is for linker flags, not for adding libraries to link to.
You can have MAIN_Application link against libsocketcan with something like:
MAIN_Application_LDADD = -lsocketcan