我想在Eclipse的C程序中使用我在Windows上使用MinGW編譯的FFMPEG庫。我已成功地建立一個簡單的HelloJNI.c文件並運行它:在Eclipse中無法使用gcc -shared查找庫來構建DLL
gcc $(INCLUDES) -c -g -w HelloJNI.c
gcc -shared -o $(BIN_DIR)/hello.dll HelloJNI.o
我現在正在試圖編譯使用FFMPEG一個ffmpeg_native.c文件,但我得到的錯誤運行以下:
LIBRARY_PATH = -L:"c:/Dev/msys-1.0/local/lib" -L:"c:/Dev/msys-1.0/local"
INCLUDES = -I$(SRC_DIR) -I"c:/Dev/msys-1.0/local/include" -I"c:/Program Files/Java/jdk1.8.0_45/include" -I"c:/Program Files/Java/jdk1.8.0_45//include/win32"
BIN_DIR = ../bin
gcc $(INCLUDES) -c -g -w ffmpeg_native1.1.4.c
gcc -shared -o $(BIN_DIR)/exportnative.dll ffmpeg_native1.1.4.o $(LIBRARY_PATH) -lffmpeg -lavcodec -lx264 -lavformat -lavutil -lswscale
第一線運行正常,但第二個顯示輸出:
c:/Dev/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lavcodec
[etc for all libraries]
我百思不得其解,因爲我能夠運行在MinGW的成功如下:
ld -o /local/libffmpeg.so -L/local/lib -lavcodec -lx264 -lavformat -lavutil -lswscale
抱歉,應該指定LIBRARY_PATH是什麼。 -L已包含在內。修正了這個問題。 – tishu
@tishu你不應該把冒號':'介於'-L'和路徑之間。它應該是'-L「c:/Dev/msys-1.0/local/lib」'。 –
當然!謝謝! – tishu