2016-08-30 8 views
0

私はautotoolsを使ってプロジェクトをセットアップしようとしています。 GLFWとリンクするためには実行可能ファイルが必要ですが、動作させることはできません。AutotoolsはGLFWを正しくリンクしていません

configure.ac:

AC_INIT([Test], [0.1], [[email protected]]) 
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 
AC_PROG_CXX 
AC_CONFIG_HEADERS([config.h]) 
AC_CONFIG_FILES([ 
       Makefile 
       src/Makefile 
       ]) 
AC_OUTPUT 
PKG_CHECK_MODULES([glfw3],[glfw3]) 

Makefile.am:

SUBDIRS = src 

のsrc/Makefile.am:

bin_PROGRAMS = testapp 
testapp_SOURCES = main.cpp 
testapp_CFLAGS = ${glfw3_CFLAGS} 
testapp_LDADD = ${glfw3_LIBS} 

私は./configureを実行すると、すべてがちょうどうまくいきます良い。 glfw3はexpexedとして見つけられる。しかし、makeを使ってコードをコンパイルしようとすると、実行ファイルが適切にリンクされていないように見えます。

make all-recursive 
make[1]: Entering directory '/home/dennis/Utveckling/testapp' 
Making all in src 
make[2]: Entering directory '/home/dennis/Utveckling/testapp/src' 
g++ -DHAVE_CONFIG_H -I. -I..  -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp 
mv -f .deps/main.Tpo .deps/main.Po 
g++ -g -O2 -o testapp main.o 
main.o: In function `main': 
/home/dennis/Utveckling/testapp/src/main.cpp:6: undefined reference to `glfwInit' 
/home/dennis/Utveckling/testapp/src/main.cpp:7: undefined reference to `glfwCreateWindow' 
/home/dennis/Utveckling/testapp/src/main.cpp:8: undefined reference to `glfwMakeContextCurrent' 
/home/dennis/Utveckling/testapp/src/main.cpp:12: undefined reference to `glClear' 
/home/dennis/Utveckling/testapp/src/main.cpp:13: undefined reference to `glfwSwapBuffers' 
/home/dennis/Utveckling/testapp/src/main.cpp:14: undefined reference to `glfwPollEvents' 
/home/dennis/Utveckling/testapp/src/main.cpp:10: undefined reference to `glfwWindowShouldClose' 
collect2: error: ld returned 1 exit status 
Makefile:333: recipe for target 'testapp' failed 
make[2]: *** [testapp] Error 1 
make[2]: Leaving directory '/home/dennis/Utveckling/testapp/src' 
Makefile:353: recipe for target 'all-recursive' failed 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory '/home/dennis/Utveckling/testapp' 
Makefile:294: recipe for target 'all' failed 
make: *** [all] Error 2 

私は間違っていますか?コードはコピー&ペーストですhttp://www.glfw.org/documentation.html

答えて

2

PKG_CHECK_MODULEAC_OUTPUTの前に移動する必要があります。 configure.acはトップダウンで実行されるため、値を計算する前にMakefile.inに値を代入しています。

また、Makefile.amの形式のメモは${}ではなく$()の形式を使用する必要があります。

関連する問題