簡體   English   中英

makefile錯誤:/ usr / bin / ld:找不到-llibname和makedepend

[英]makefile error: /usr/bin/ld: cannot find -llibname and makedepend

我正在嘗試為小型項目編寫我自己的makefile,我的項目由src目錄組成,該目錄包含main.c,file1.c,file2.c,header1.h,最后是header2.h,這些文件使用非標准庫中的某些庫我已創建的目錄和非標准頭文件,libraries目錄位於usr / lib / pr__lib,頭目錄位於usr / include / lib,因此我應該創建兩個makefile.am,一個將位於src目錄,另一個將在項目的根目錄中,src目錄的makefile.am如下所示:

program_NAME := myproject

AM_CPPFLAGS = \
   -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \
   -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
   -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\"


bin_PROGRAMS = myproject_AutoProject

program_INCLUDE_DIRS := /usr/bin/srr__bin

program_LIBRARY_DIRS := /usr/lib/srr__lib

AM_CFLAGS = 

AM_CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))

program_lib2 := \
      libsrr\
      libprdsl \
      libtwo \
      libhistogram \
      libhistogram_pic \
      libprlistofarrays \
      libprlistofarrays_pic \
      libprmalloc \
      libvreo 
AM_LDFLAGS = 

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

AM_LDFLAGS += $(foreach library,$(program_lib2),-l$(library))

PRDSL_AutoProject_SOURCES = \
   main.c \
   file1.c \
   file2.c

depend :
    makedepend -$(CFLAGS) -$(PRDSL_AutoProject_SOURCES)

all: $(program_NAME)

第二個makefile.am如下所示:

SUBDIRS = src

myproject_AutoProjectdocdir = ${prefix}/doc/PRDSL_AutoProject
myproject_AutoProjectdoc_DATA = \
  README\
  COPYING\
  AUTHORS\
  ChangeLog\
  INSTALL\
  NEWS


INTLTOOL_FILES = intltool-extract.in \
  intltool-merge.in \
  intltool-update.in

EXTRA_DIST = $(myproject_AutoProjectdoc_DATA) \
   $(INTLTOOL_FILES)

DISTCLEANFILES = intltool-extract \
   intltool-merge \
 intltool-update \
 po/.intltool-merge-cache


# Remove doc directory on uninstall
uninstall-local:
  -rm -r $(PRDSL_AutoProjectdocdir)

但我收到以下錯誤:

 /usr/bin/ld: cannot find -llibsrr
 /usr/bin/ld:.......

其他庫也一樣! 我想這是depend命令中的問題,誰能告訴我如何使用depend命令以便自動創建依賴關系並避免人為錯誤

您能否進行更改,並讓我知道:

PathToMySource=`pwd` 
Program_INCLUDE_DIRS := /usr/bin/srr__bin

program_LIBRARY_DIRS := /usr/lib/srr__lib

AM_CFLAGS = 

AM_CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))

program_lib2 := \
      $(PathToMySource)/libsrr\
      $(PathToMySource)/libprdsl \
      $(PathToMySource)/libtwo \
      $(PathToMySource)/libhistogram \
      $(PathToMySource)/libhistogram_pic \
      $(PathToMySource)/libprlistofarrays \
      $(PathToMySource)/libprlistofarrays_pic \
      $(PathToMySource)/libprmalloc \
      $(PathToMySource)/libvreo 
AM_LDFLAGS = 

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

AM_LDFLAGS += $(foreach library,$(program_lib2),-l$(library))

PRDSL_AutoProject_SOURCES = \
   main.c \
   file1.c \
   file2.c

depend :
    makedepend -$(CFLAGS) -$(PRDSL_AutoProject_SOURCES)

all: $(program_NAME)

我假設文件夾位於預期運行make文件的目錄中。

如果不是,請添加另一個變量並設置路徑。 然后在PathToMySource位置使用該變量。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM