2010-09-14 2 views
11

Я использую Code Blocks с MinGW и пытаюсь получить простую программу для компиляции со статической связью. Я создал библиотеки Boost с помощью these directions. Все получилось отлично, и я смог успешно скомпилировать эту простую программу (она компилируется, я знаю, что она не работает, потому что она выходит до отправки сообщения на консоль, но я просто хочу ее скомпилировать).Кодовые блоки, проблемы с MinGW, Boost и статические ссылки

Если у меня есть библиотека DLL в моих библиотеках-компоновщиках, она компилируется отлично, но когда я переключаю ее со статическими .a-библиотеками одного и того же содержимого, я получаю неопределенные ссылки, такие как «неопределенная ссылка на« _imp ___ ZN5boost6threadD1Ev »|».

Я понятия не имею, в чем проблема и не может найти решение. Я думаю, что это может быть связано с настройками компоновщика, но я не могу найти информацию о том, как их изменить. Я был бы чрезвычайно благодарен за любую помощь, которая могла бы быть предоставлена.

#include <iostream> 
#include <boost/thread.hpp> 

void myfunction() 
{ 
    std::cout << "this is a thread" << std::endl; 
    return; 
} 

int main() 
{ 
    boost::thread mythread(&myfunction); 
    return 0; 

} 

ответ

10

Из-за попытки связывать статически, когда заголовки настроены для динамической ссылки. Я объясняю это для libssh в this question. Вытаскивание в boost/thread/detail/config.hpp заставляет меня думать, что вы должны #define BOOST_THREAD_USE_LIB, или используйте флаг -D, чтобы сделать то же самое.

 Смежные вопросы

  • Нет связанных вопросов^_^