Как в makefile подключить отдельный obj?

Тема в разделе "LANGS.C", создана пользователем Llirik, 11 июл 2019.

  1. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Подскажите, пожалуйста, как в makefile подключить отдельный obj?
    --- Сообщение объединено, 11 июл 2019 ---
    Пытаюсь вот так:
    Код (Text):
    1. TARGETNAME=MouseJoy
    2. TARGETPATH=obj
    3. TARGETTYPE=DRIVER
    4.  
    5. BUFFER_OVERFLOW_CHECKS=0
    6. USER_C_FLAGS=/FAs
    7. INCLUDES=..\inc
    8.  
    9. SOURCES=$(TARGETNAME).c \
    10.   $(TARGETNAME).rc
    11.  
    12. OBJS=OverFlow.obj
    13.  
    mousejoy.obj : error LNK2001: unresolved external symbol OverFlow
     
  2. HESH

    HESH Active Member

    Публикаций:
    2
    Регистрация:
    20 мар 2008
    Сообщения:
    143
    Предположительно - через пробел. Как-то давно сталкивался с этим вопросом и если не ошибаюсь ответ нашел в каком-то из батников одного из имевшихся сорцев (речь идет об ASM) - там объектные файлы при линковке шли через пробел в строку.
     
  3. AppleGateway

    AppleGateway New Member

    Публикаций:
    0
    Регистрация:
    24 апр 2021
    Сообщения:
    1
    Путь указать абсолютный , батники они ж тупые :)
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Если объектный файл лежит в другой папке (не в CWD), то да, лучше указать абсолютный путь, а не относительный, если мейк его не находит по относительному пути. Еще на самом деле могут быть проблемы там с разрядностью или еще с чем. Это единственная ошибка, которая выводит линкер?

    И на самом деле не понятно, зачем ты используешь мейкфайлы, если компилишь cl.exe (компилятором из визуал студии). Сразу бы проект сделал в студии и через гуй все прописал. Или я попутал? /FAs - это же флаги для cl.exe, верно?
     
    Последнее редактирование: 24 апр 2021