У меня есть программа на C/C++ x64, которая использует несколько библиотек.Ошибка статической связи C/C++ (LIBCMT.lib)
Компилятор Я использую: Microsoft (R) C/C++ оптимизирующий компилятор Версия 18.00.31101 для x64
В начале у меня были некоторые проблемы со статическим/динамическое связывание, но я решил эти вопросы , и я могу успешно скомпилировать мою программу с флагами MD и MDd. Теперь я хочу избавиться от библиотек библиотеки времени выполнения C. Я хотел бы скомпилировать мое приложение с использованием флагов MT.
Библиотеки, которые я использую: samtools и zlib (я использую флаг MT при создании обеих библиотек). В конце процесса связывания я получаю такую ошибку, хотя я использовал одни и те же конфигурации для всего процесса компиляции. Сообщение об ошибке:
LIBCMT.lib(atox.obj) : error LNK2005: atoll already defined in libbam.lib(bam_import.obj)
myApplication.exe : fatal error LNK1169: one or more multiply defined symbols found
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x8
6_amd64\link.exe"' : return code '0x491'
команды для создания библиотеки и ссылки:
CC=cl.exe
AR= lib.exe
CFLAGS= /MT -c
INCLUDES= -I. -Iwin32
1st library:
ZLIB: $(OBJS)
$(AR) objectfiles
OBJS:
$(CC) $(CFLAGS) $(INCLUDES) sourcefiles
2nd library:
libbam.lib:$(LOBJS)
$(AR) $(LOBJS) $(BCFOBJS) /out:libbam.lib
BCFOBJ:
$(CC) $(CFLAGS) $(INCLUDES) sourcefiles
.c.obj: // LOBJS are generated here
$(CC) -c $(CFLAGS) $(INCLUDES) $< -o [email protected]
Command я использую, чтобы скомпилировать свою программу с использованием библиотек мною выше:
CC=cl.exe
LINK=link.exe
FLAGS= -Ox /MT -c
obj1.obj:
$(CC) $(FLAGS) test.cpp $(INCLUDES)
testMain.obj:
$(CC) $(FLAGS) testMain.cpp $(INCLUDES)
testMain.exe: $(OBJ)
$(LINK) obj1.obj testMain.obj $(LIBS) /OUT:testMain.exe
Поскольку в makefileах довольно долго, я попытался немного упростить его, показать флаги, которые я использую для каждой создаваемой библиотеки.
Заранее спасибо.
Покажите нам строку commad – Kartoch
Привет @ Kartoch, я попытался добавить пару строк. Приветствия. – serhatg