Блоки кода, проблемы с MinGW, Boost и статические ссылки

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

Если у меня есть DLL в моих библиотеках-компоновщиках, она компилируется отлично, но когда я переключаю ее со статическими .a-библиотеками одного и того же содержимого, я получаю ссылки undefined, такие как undefined ссылка на `_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;

}

Ответ 1

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