У меня проблема при попытке использовать автоинструменты для простого надуманного проекта, задача проста: использовать Objective-C на Mac OSX и C ++ на Windows (mingw) - с небольшим количеством клея C
в середине.
Проект структурирован следующим образом (за исключением всех автоматически сгенерированных файлов):
./aclocal.m4
./configure
./configure.ac
./Makefile.am
./src/darwin/greet.m
./src/greet.h
./src/main.cpp
./src/Makefile.am
./src/mingw32/greet.cpp
Содержимое файлов ключей находится здесь на github в сущности ,(не хотел спамить здесь)
Я использую следующую команду между изменениями:
$ autoreconf -vis && ./configure && make
Полученная ошибка - полный вывод ( здесь вдругой смысл ):
....
Making all in src
g++ -g -O2 -o greetings main.o
Undefined symbols:
"greet()", referenced from:
_main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [greetings] Error 1
make: *** [all-recursive] Error 1
Я очень плохо знаком с автоинструментами и прошел долгий путь с помощью пары хороших людей в IRC, но я думаю, что делаюздесь концептуальная ошибка, очень надеюсь, что я совершаю простую ошибку.
Из документов я понял, что EXTRA_progname_SOURCES
должен содержать все возможные файлы, и что устанавливаемые условия должны работать для выбора правильного
К сожалению, я не думаю, что мои make-файлы переделываются, потому что даже когда я изменяю строку в src/Makefile.am
, чтобы явно включить источники для моей платформы (то есть Max OS X Darwin, большинствовремя) - вывод остается полностью неизменным.