Automake Libtool“没有创建目标的规则”
我一直在尝试将 OpenGL SuperBible 附带的 GLTools 库构建到带有 automake 的 libtool 库中。
我已经设置了 autoconf 和 automake,但是当涉及到实际构建库时,我得到:
$ make
make: *** No rule to make target `GLBatch.lo', needed by `libgltools.la'. Stop.
我已经在 google 上进行了尽可能多的搜索,但什么也没得到,我是 automake 的新手,所以我不是非常确定要寻找什么。我确信这要么是一个小错误,要么是我错过了一些基本的东西。
这是我的 Makefile.am:
ACLOCAL_AMFLAGS = -I m4
lib_LTLIBRARIES = libgltools.la
libgltools_la_SOURCES = GLBatch.cpp GLShaderManager.cpp GLTriangeBatch.cpp GLTools.cpp math3d.cpp glew.c
#libgltools_la_CFLAGS =
libgltools_la_LIBADD = -lX11 -lglut -lGL -lGLU -lm
include_HEADERS = GLBatchBase.h GLBatch.h GLFrame.h GLFrustum.h GLGeometryTransform.h GLMatrixStack.h GLShaderManager.h GLTools.h GLTriangleBatch.h math3d.h StopWatch.h GL/glew.h GL/glxew.h GL/wglew.h
EXTRA_DIST = autogen.sh
还有我的 configure.ac(如果重要的话):
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.67])
AC_INIT([libgltools.la], [0.1], [[email protected]])
AM_INIT_AUTOMAKE([libgltools.la], [0.1])
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src/])
AC_CONFIG_HEADERS([include/config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
# Checks for libraries.
# FIXME: Replace `main' with a function in `-lGL':
AC_CHECK_LIB([GL], [main])
# FIXME: Replace `main' with a function in `-lGLU':
AC_CHECK_LIB([GLU], [main])
# FIXME: Replace `main' with a function in `-lX11':
AC_CHECK_LIB([X11], [main])
# FIXME: Replace `main' with a function in `-lglut':
AC_CHECK_LIB([glut], [main])
# FIXME: Replace `main' with a function in `-lm':
AC_CHECK_LIB([m], [main])
# Checks for header files.
AC_PATH_X
AC_CHECK_HEADERS([inttypes.h stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_UINT64_T
AC_CHECK_TYPES([ptrdiff_t])
# Checks for library functions.
AC_HEADER_MAJOR
AC_FUNC_MALLOC
AC_CHECK_FUNCS([gettimeofday sqrt strchr strstr])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
非常感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据您的描述很难说,但我敢打赌您需要将
Makefile.am
放在src
目录中,然后创建一个Makefile.am< /code> 在
GLTools
目录中,如下所示:也可以执行 非递归 make 但这需要一些额外的设置。
我在这里为您做到了:
https://github.com/msteinert/gltools
It's hard to say based on your description but I would wager that you need to put your
Makefile.am
in thesrc
directory and then create aMakefile.am
in theGLTools
directory that looks like this:It is also possible to do a non-recursive make but that requires some extra setup.
Here I did it for you:
https://github.com/msteinert/gltools
您应该在
configure.ac
文件中添加某个位置:或者,根据文档:
You should add somewhere in your
configure.ac
file:Or alternatively, according to the docs: