Подключение библиотеки на Си к проекту MASM32

Тема в разделе "WASM.BEGINNERS", создана пользователем cib, 25 дек 2005.

  1. cib

    cib New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2005
    Сообщения:
    20
    Мне необходимо подключить библиотеку, которая написана на C к проекту на ассемблере.

    Библиотека собрана с помощью MSVC6, а проект пишу c использованием MASM32.

    В библиотеке используются некоторые стандартные функции Си, такие как memcpy, strcpy, strcmp и др.



    Когда попытался собрать в первый раз, то линкер пожаловался на отсутствие LIBC.lib и OLDNAMES.lib.

    Я положил их в папку с исходниками и теперь при попытке собрать программу получаю:


    Код (Text):
    1. Assembling: test.asm
    2. LIBC.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
    3. LIBC.lib(a_env.obj) : error LNK2019: unresolved external symbol __imp__GetEnvironmentStrings@0 referenced in function ___crtGetEnvironmentStringsA
    4. test.exe : fatal error LNK1120: 2 unresolved externals
    5.  




    Как можно решить данную проблему? Понятно, что линкер не находит _main, но зачем она ему нужна? Ведь собиралась же библиотека.



    Заранее спасибо всем ответившим.
     
  2. cib

    cib New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2005
    Сообщения:
    20
    Выкинул все функции из стандартной библиотеки: memcpy и т.п., заменив их самописными аналогами.

    Но почему-то линкер упорно продолжает требовать LIBC.lib, а при добавлении LIBC.lib повляется ошибка, которую я описал выше :dntknw:
     
  3. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Попробуй линковать с ключем /NODEFAULTLIB
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Переименуй в либе main например в libEntry и собери либу с

    #pragma comment(linker, "/entry:libEntry")