Automake LibSocketCan

Automake LibSocketCan

我正在使用 automake 来构建我的项目。我的项目使用 pthread 和 libsocketcan。我已经使用命令

安装了 libsocketcan
sudo apt-get install libsocketcan-dev

在 eclpise 中,我为 pthread 和 libsocketcan 添加了链接器标志。代码将编译并 运行。当我 运行 我的 automake 脚本时,构建失败并出现错误。

gcc: error: unrecognized command line option ‘-socketcan’[![enter image description here][1]][1]

我的makefile.am如下:

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 

如果我删除此处对 socketcan 的所有代码和引用,一切正常。我得到了一个很好的应用程序二进制文件,可以 运行 线程。一旦我添加了,我就不能再构建了。我试过 LDFLAGS socketcanlibsocketcanlibsocketcan-dev.

我的 makefile 中需要什么 LDFLAG 才能正确包含 libsocketcan

为此您不需要任何“LDFLAG”。 LDFLAGS 用于 linker 标志,而不是用于将库添加到 link 到。

你可以用 MAIN_Application link 来对抗 libsocketcan,比如:

MAIN_Application_LDADD = -lsocketcan