[ZipLib] Kompilacja ze źródeł
Ostatnio zmodyfikowano 2017-05-20 11:55
marcolo2307 Temat założony przez niniejszego użytkownika |
[ZipLib] Kompilacja ze źródeł » 2017-05-19 01:34:00 Cześć! Mam problem z kompilacją biblioteki ZipLibNie ma pliku CMakeLists.txt, więc nie mogę wygenerować własnego makefile, a obecny z tego co rozumiem jest pod kompilator clang, a korzystam z mingw. Plik makefile: # Final names of binaries EXECUTABLE = Bin/zipsample SO_LIBRARY = Bin/libzip.so
# C & C++ compiler #CC = gcc #CXX = g++-4.8 CC = clang CXX = clang++ CFLAGS = -fPIC -Wno-enum-conversion -O3 CXXFLAGS = -fPIC -std=c++11 -O3
# Linker flags LDFLAGS = -pthread
# Sources of external libraries SRC_ZLIB = $(wildcard Source/ZipLib/extlibs/zlib/*.c) SRC_LZMA = $(wildcard Source/ZipLib/extlibs/lzma/unix/*.c) SRC_BZIP2 = $(wildcard Source/ZipLib/extlibs/bzip2/*.c)
# ZipLib sources SRC = \ $(wildcard Source/ZipLib/*.cpp) \ $(wildcard Source/ZipLib/detail/*.cpp)
# Object files OBJS = \ $(SRC:.cpp=.o) \ $(SRC_ZLIB:.c=.o) \ $(SRC_LZMA:.c=.o) \ $(SRC_BZIP2:.c=.o)
# Rules all: $(EXECUTABLE) $(SO_LIBRARY)
$(EXECUTABLE): $(OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) Source/Sample/Main.cpp -o $@ $^
$(SO_LIBRARY): $(OBJS) $(CXX) $(LDFLAGS) -shared -o $@ $^
%.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@
%.o: %.c $(CC) $(CFLAGS) -c $< -o $@
clean: rm -rf `find Source -name '*.o'` ziplib.tar.gz Bin/*.zip Bin/out* $(EXECUTABLE) $(SO_LIBRARY)
tarball: tar -zcvf ziplib.tar.gz * Przy próbie kompilacji za pomocą mingw32-make otrzymuję taki błąd: clang++ -fPIC -std=c++11 -O3 -c Source/ZipLib/ZipArchive.cpp -o Source/ZipLib/ZipArchive.o process_begin: CreateProcess(NULL, clang++ -fPIC -std=c++11 -O3 -c Source/ZipLib/ZipArchive.cpp -o Source/ZipLib/ZipArchive.o, ...) failed. make (e=2): Nie można odnaleźć określonego pliku. Makefile:43: recipe for target 'Source/ZipLib/ZipArchive.o' failed mingw32-make: *** [Source/ZipLib/ZipArchive.o] Error 2 W paczce znajdują się także projekty dla Visuala, które działają. Czy to problem z tym, że makefile jest zrobiony pod clang? Mogę to jakoś skompilować pod mingw? |
|
DejaVu |
» 2017-05-19 10:15:13 Jeżeli kompilujesz pod linuxem to zweryfikuj czy małe i wielkie znaki się zgadzają. Komunikat sugeruje, że jakiegoś pliku nie może znaleźć. |
|
j23 |
» 2017-05-19 10:37:57 @DejaVu, MinGW pod Linuksem? |
|
marcolo2307 Temat założony przez niniejszego użytkownika |
» 2017-05-19 11:30:59 Korzystam z Windows 10, nie ja pisałem makefile. Ściągnąłem całą paczkę z strony biblioteki. Nie znam się na makefile, próbowałem jedynie wywołać mingw32-make w katalogu z makefile. |
|
j23 |
» 2017-05-19 12:51:26 Zmień to: # C & C++ compiler CC = gcc CXX = g++ #CC = clang #CXX = clang++ CFLAGS = -fPIC -Wno-enum-conversion -O3 CXXFLAGS = -fPIC -std=c++11 -O3
|
|
marcolo2307 Temat założony przez niniejszego użytkownika |
» 2017-05-19 13:11:46 C:\Users\marco\Desktop\ziplib>mingw32-make g++ -fPIC -std=c++11 -O3 -c Source/ZipLib/ZipArchive.cpp -o Source/ZipLib/ZipArchive.o Source/ZipLib/ZipArchive.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) #include "ZipArchive.h" ^ Makefile:43: recipe for target 'Source/ZipLib/ZipArchive.o' failed mingw32-make: *** [Source/ZipLib/ZipArchive.o] Error 1
C:\Users\marco\Desktop\ziplib>mingw32-make g++ -fPIC -std=c++11 -O3 -c Source/ZipLib/ZipArchive.cpp -o Source/ZipLib/ZipArchive.o Source/ZipLib/ZipArchive.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) #include "ZipArchive.h" ^ Makefile:43: recipe for target 'Source/ZipLib/ZipArchive.o' failed mingw32-make: *** [Source/ZipLib/ZipArchive.o] Error 1 Dodatkowo pojawia się komunikat: "Nie znaleziono punktu wejścia procedury __printf__ w bibliotece D:/.../mingw32/bin/as.exe. |
|
DejaVu |
» 2017-05-19 18:02:53 Zapewne musisz dodać makra, skoro pokazuje, że nie wie co to jest __printf__. Przypuszczam, że trzeba zdefiniować makra w stylu: #define __printf__ printf
|
|
marcolo2307 Temat założony przez niniejszego użytkownika |
» 2017-05-19 18:09:31 Dodałem -D __printf__=printf do CFLAGS, ale nic to nie zmieniło. Wydaje mi się, że najłatwiej byłoby gdybym mógł stworzyć własny plik CMakeLists.txt, dużo będzie z tym roboty? W sumie to mam chyba tylko pliki .c/.cpp i nic więcej ;/ Edit: z tego co zauważyłem to w ogóle nie działa mi cmake, przy próbie kompilacji samego zlib jest to samo (as.exe). Nie pomógł ani reinstall codeblocks razem z mingw ani reinstall cmake'a. |
|
« 1 » 2 3 |