Компиляция libzip на Mac: неопределенные символы для архитектуры x86_64

Я изучал C ++ и решил попробовать создать простую программу для чтения файлов, используя libzip для архивных файлов (например, Word).

Я недавно установил libzip на свой Macbook с помощью brew, но, похоже, у меня возникает следующая проблема, когда я пытаюсь скомпилировать программу, использующую libzip:

Undefined symbols for architecture x86_64:
"_zip_fopen", referenced from:
_main in main-918bfa.o
"_zip_open", referenced from:
_main in main-918bfa.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [a.exe] Error 1

Команда, которую я использую для компиляции:

g++ -g main.cpp -std=c++11 -I/usr/local/Cellar/libzip/0.11.2/include -I/usr/local/Cellar/libzip/0.11.2/lib/libzip/include -L/usr/local/Cellar/libzip/0.11.2/lib -o ../a.exe

main.cpp:

 #include <iostream>
#include <fstream>
#include <zip.h>
#include <zlib.h>

using namespace std;
int numArgs = 2;

int main(int argc, char** argv){
// Parse command line arguments
if(argc != numArgs){
std::cout << "Incorrect number of arguments provided.\n";
std::cout << "Command line syntax: fileReader.exe inputFile" << endl;
exit(0);
}

// Try out libzip functionality
std::string inputDocument(argv[1]);
int err = 0;
zip* z = zip_open(inputDocument.c_str(), 0, &err);
if(z == NULL) {
printf("Could not read docx file. Error code: %d", err);
exit(-1);
}
zip_file* contentTypes = zip_fopen(z, "[Content_Types].xml", ZIP_FL_UNCHANGED);
exit(0);
}

0

Решение

Не похоже, что вы включили библиотеку libzip в команду компиляции. Попробуйте добавить -lzip к вашей команде g ++

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]