私はautomakeツールを使って簡単なC++プログラムをコンパイルしようとしています。しかし、私は単純に代わり終わりのグラム++コマンドの先頭に-o example example.cpp
一部を置くことによって解決することができるいくつかのリンカエラーは、取得するには、CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o [email protected]
automakeのCXXLINKで注文を変更するにはどうすればよいですか?
この方法:単独では、AutomakeはそのMakefileの行で作成されます。
-o example example.cpp
をリンカコマンドの前に置くようにautomakeに指示するにはどうすればよいですか?私はこのようにそれを手動でコンパイルするとき
g++ -I/usr/include/libdrm -std=c++11 -pthread -g -O2 -lGLEW -lGLU -lGL -lglfw -lGL -lGLEW -lglfw -lX11 -lXi -lXrandr -o GLTest main.o
main.o: In function `main':
main.cpp:8: undefined reference to `glfwInit'
main.cpp:9: undefined reference to `glfwWindowHint'
main.cpp:10: undefined reference to `glfwWindowHint'
main.cpp:11: undefined reference to `glfwWindowHint'
main.cpp:12: undefined reference to `glfwWindowHint'
main.cpp:14: undefined reference to `glfwCreateWindow'
collect2: error: ld returned 1 exit status
は、これらが解決されています:
g++ -o GLTest main.cpp -I/usr/include/libdrm -std=c++11 -pthread -g -O2 -lGLEW -lGLU -lGL -lglfw -lGL -lGLEW -lglfw -lX11 -lXi -lXrandr
あなたの 'Makefile.am'はどのように見えますか? – Galik
これは私のMakefile.amである: 'bin_PROGRAMS = GLTest' ' GLTest_SOURCES = main.cpp' 'AM_CXXFLAGS = @ gllibs_CFLAGS @ -std = C++ 11 -pthread' ' AM_LDFLAGS = @ gllibs_LIBS @ -lGL -lGLEW -lglfw -lX11 -lXi -lXrandr' – Kadabash
'@ gllibs_LIBS @ 'はどのように設定されていますか?代わりに '$(gllibs_LIBS)'を試しましたか? GL/X11などのライブラリを見つけるために 'PKG_CHECK_MODULES'を見ましたか? – Galik