如何在makefile.am中添加CFLAGS

时间:2017-11-11 05:43:06

标签: c linux makefile yocto

我在Makefile.am来源中使用yocto

我的代码正常使用Makefile

但是,在与Makefile.am中的yocto进行整合时,会出现分段错误。

我在编译时使用 - lpthread。我想知道如何使用    cflags中的Makefile.am。任何人都可以告诉我,Makefile.am是否正确?因为我对我的汇编感到怀疑。

以下是我的Makefile.am

AUTOMAKE_OPTIONS = foreign

CFLAGS = -Wall -Wextra -static -lpthread -lrt
#include_HEADERS = .Iinclude/*
nobase_include_HEADERS = include/fmsHeader.h include/c_typedef.h include/console_comm.h

bin_PROGRAMS = bbmain
bbexample_SOURCES = bbmain.c

2 个答案:

答案 0 :(得分:1)

我将内容重新修改为以下格式。 有效

希望它对某人有帮助。

w

答案 1 :(得分:0)

您建议的makefile的几个问题(在问题中):

  1. 不要在Makefile.am中使用=,因为这使得从外部控制基本标志变得更加困难。请改用+=
  2. 正如您所注意到的那样,CFLAGS用于编译标志。不幸的是,LDFLAGS也是错误的,因为它用于链接器标志。您应该将标记添加到LIBS
  3. 永远不要使用-lpthread。请改用-pthread。另请注意,-pthread是一个编译标志,也是一个链接时标志。
  4. 就个人而言,我喜欢通过configure脚本添加-Wall-Wextra等标志,而不是makefile本身的一部分。它可以更容易地控制它的使用。
  5. 最终结果应如下所示:

    CFLAGS += -pthread
    LIBS += -lrt