Форум программистов, компьютерный форум CyberForum.ru

Cтатическая линковка или "дайте _imp__func, а не __imp_func" - C++

Восстановить пароль Регистрация
 
Segaman
 Аватар для Segaman
2 / 2 / 1
Регистрация: 03.09.2014
Сообщений: 141
21.04.2016, 17:08     Cтатическая линковка или "дайте _imp__func, а не __imp_func" #1
написал DLL, собираю всё в MinGW Code::Blocks
на выходе получаю файл func.a, func.def и func.dll
внутри func.a три раза упоминается __imp_func ,т.е. с 2 подчеркиваниями сначала и 1 после imp
компилятор при сборке программы со статической линковкой к func.a ругается на то, что подчёркиваний вначале должно быть 1, а после imp 2, а в func.a все наоборот.

пробовал линковать к другим проэктам, таже канител: "дайте _imp__func, а не __imp_func"
пробовал пересобирать, бесполезно.
может кто-то сталкивался с такой проблемой?
просто у меня есть ещё 3 dll собранные в той же среде и работающие. они линкуются нормально, а у этой такая проблема

вот main.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef __LIBLOG_H__
#define __LIBLOG_H__
/*---------------------------------------------------------*/
#include <windows.h>
 
#ifdef LIBLOG_BUILD_DLL
    #define DLL_LIBLOG_EXPORT __declspec(dllexport)
    #warning "DLL_LIBLOG_EXPORT dllexport"
#else
    #define DLL_LIBLOG_EXPORT __declspec(dllimport)
    #warning "DLL_LIBLOG_EXPORT dllimport"
#endif
/*---------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif
/*---------------------------------------------------------*/
 
int DLL_LIBLOG_EXPORT   func(int count);
 
/*---------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
/*---------------------------------------------------------*/
#endif // __LIBLOG_H__
Добавлено через 59 секунд
текст ошибки:
C++
1
bin\obj x86\config.o:config.cpp:(.text+0x4b): undefined reference to `_imp__func'
Добавлено через 4 часа 1 минуту
пересоздал проэкт, не помогло. всё ещё не собирается
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2016, 17:08     Cтатическая линковка или "дайте _imp__func, а не __imp_func"
Посмотрите здесь:

C++ Вывести "Молодой" или "Старый" в зависимости от введенного возраста
C++ Обчисление введенной строки любого формата(пример:"(2+3)/4*2"или"2+3"или ...)
C++ Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе
C++ Builder Ошибка " Is not a valid integer value " или " sqrt: DOMAIN error "
C++ Дайте ссылку на книгу "C++ For Dummies: Stephen R. Davis" 4е издание на английском
C++ Отсортировать struct. (дайте тест, который "сломает" мой код)
"Чудеса типа float" или "Куда девалась информация?" C++
Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль" C++
бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному C++
C++ WinAPI Ошибка: выражение слева от ".length"/".substr" должно представлять класс, структуру или объединение
C++ Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое
C++ Числа "перевертыши". Дайте комментарий к каждой строчке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,508
21.04.2016, 20:36     Cтатическая линковка или "дайте _imp__func, а не __imp_func" #2
Может stdcall влепить или в среде декорацию вырубить
Segaman
 Аватар для Segaman
2 / 2 / 1
Регистрация: 03.09.2014
Сообщений: 141
22.04.2016, 10:29  [ТС]     Cтатическая линковка или "дайте _imp__func, а не __imp_func" #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
проблема была в разрядности.
Code::Blocks по дефолту ставил 64х, а моя программа на 32х написана.
вообщем проблема решилась установкой верной разрядности.
Yandex
Объявления
22.04.2016, 10:29     Cтатическая линковка или "дайте _imp__func, а не __imp_func"
Ответ Создать тему
Опции темы

Текущее время: 07:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru