exiftool из какао - PullRequest
       14

exiftool из какао

0 голосов
/ 03 октября 2018

Я пытаюсь использовать exiftool форму Какао

#include <iostream>
#include "ExifTool.h"   //  this is a .mm file so that we can include C++ code/structures

@implementation MyClass

-(id)myInit
{
    if (self = [super init])
    {
        ExifTool* tool = new ExifTool("/Users/trygve/Tools/exiftool");
    }
 }

Это, очевидно, просто тест, но в строке "new ExifTool" я получаю сбой:

dyld`dyld_fatal_error:
    0x7fff5fc01074 <+0>: int3   
->  0x7fff5fc01075 <+1>: nop    

Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)

dyld: Symbol not found: __ZN8ExifToolC1EPKcS1_

Следующеекод отлично работает в прямой терминальной программе C ++.Это из примеров на странице разработчика exiftool.Почему этот код работает нормально, но когда я пытаюсь использовать его из файла Cocoa .mm, он не работает?

#include <iostream>
#include "ExifTool.h"

int main(int argc, char **argv)
{
    if (argc < 2) {
        std::cout << "Example1: Read metadata from an image." << std::endl;
        std::cout << "Please specify input file name" << std::endl;
        return 1;
    }
    // create our ExifTool object
    ExifTool *et = new ExifTool("/Users/trygve/Tools/exiftool");
    // read metadata from the image
    TagInfo *info = et->ImageInfo(argv[1],NULL,5);
    if (info) {
        // print returned information
        for (TagInfo *i=info; i; i=i->next) {
            std::cout << i->name << " = " << i->value << std::endl;
        }
        // we are responsible for deleting the information when done
        delete info;
    } else if (et->LastComplete() <= 0) {
        std::cerr << "Error executing exiftool!" << std::endl;
    }
    // print exiftool stderr messages
    char *err = et->GetError();
    if (err) std::cerr << err;
    delete et;      // delete our ExifTool object
    return 0;
}

1 Ответ

0 голосов
/ 03 октября 2018

Оказывается, что файлы кода C ++, связанные с этим, копировались в приложение, а не компилировались.Работает как положено.Только с заголовочными файлами ошибки не было, и довольно загадочный сбой.

...