Как исправить "фатальную ошибку: x.264 нет такого файла или каталога" - PullRequest
0 голосов
/ 23 апреля 2019

Я написал make-файл, который собирает C-программу с заголовком x.264.После попытки выполнить make-файл в терминале я получаю фатальную ошибку: "строка example.c [строка #include] x264.h нет такого файла или каталога".Ниже вы можете найти код C и make-файл (расположенный в той же папке, библиотека - содержащая файл x264.pc - находится в папке libx264 родительской папки).Я был бы очень признателен, если бы вы могли помочь с связью.

Makefile:

    CC = gcc

    CFLAGS = -c -Wall `export PKG_CONFIG_PATH=../libx264 && pkg-config            --cflags x264`
    LDFLAGS = -static `export PKG_CONFIG_PATH=../libx264 && pkg-config --libs --static libx264`


    all: Release

    Debug: CFLAGS += -g
    Debug: example

    Release: example

    test: example.o
        $(CC) -o example example.o $(LDFLAGS)

    test.o: example.c
        $(CC) $(CFLAGS) example.c -o example.o

    clean:
        rm -f example.o example

example.c code

    #include <stdio.h>
    #include <x264.h>
    int main( int argc, char **argv )
    {
        int width, height;
         return 0;
    }

1 Ответ

1 голос
/ 23 апреля 2019

Вам нужно указать компилятору (точнее, препроцессору), где заголовочный файл использует опцию -I:

CFLAGS = -c -Wall -I../libx264

Если я прав, вам нужно распаковать этот файл .pc, чтобы x264.h действительно находился в ../libx264.

Аналогичная вещь для флагов компоновщика (при условии, что в ../libx264 есть файл libx264.a), где вы должны указать, где библиотека использует опцию -L:

LDFLAGS = -static -L../libx264 -lx264

В качестве альтернативы вы могли бы также написать:

LDFLAGS = -static ../libx264/libx264.a
...