나는 예상대로이 foo.o
을 생산하는 것,헤더가 포함 된 메이크 파일이 작동하지 않는 이유는 무엇입니까?
LDLIBS=$(shell root-config --libs)
INCLUDE= -I/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/include \
-I/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/include/darwin \
foo: foo.o
$(CXX) -shared -fPIC $(LDLIBS) $(INCLUDE) -o foo.o foo.cpp
foo.cpp에 내가 수동으로 "g++ -shared -fPIC -I..."
명령을 실행하면 다음이
#include <jvmti.h>
이 포함되어 있습니다 (C에 대한 ++) 다음 메이크있다.
하지만make
을 실행할 때이 오류가
$ make
c++ -c -o foo.o foo.cpp
lib_track_npe.cpp:1:10: fatal error: 'jvmti.h' file not found
#include <jvmti.h>
^
1 error generated.
make: *** [foo.o] Error 1
누군가가 내가 메이크에서 뭘 잘못했는지 말해 주 시겠어요거야?
감사
'g ++ ...'를 입력 한 직후에 'pwd' 명령을 게시 할 수 있습니까? – Amadeus
pwd는 현재 디렉토리 (foo.cpp 위치)입니다. 내'-I'에서 절대 경로를 지정하지 마십시오. 그러므로, 내가 어디에서 그것을 호출해야하는지는 중요하지 않다. –
예. 수동으로 당신은 -I .. 즉 부모 디렉토리가 검색 경로에 있음을 의미합니다. – Amadeus