如何在gnomebuilder中编译多线程gtkmm程序



我想编译使用多线程的gtkmm程序。我用这个例子来测试多线程。

不幸的是,我在编译时遇到了一些链接错误:

//usr/bin/ld:src/multithreadingandprogress.p/multithreadlingandprogress window.cpp.o:对符号'pthread_create@@GLIBC_2.2.5'的未定义引用

和:

/usr/bin/ld:/lib/x86_64-linux-gnu/libphread.so.0:添加符号时出错:命令行中缺少DSO

我想我需要一些LDFLAGS或一些环境变量来设置??有人知道如何为这个任务设置gnome生成器来编译吗?

有什么帮助吗?Thx

我在gtkmm-3.0中构建相同的教程时遇到了类似的问题。在CMake文件中添加以下行解决了此问题。

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")

如果您不使用CMake,则需要手动为编译器添加此标志。

在linux系统中使用线程的完整CMake必须包含以下命令:

set(CMAKE_THREAD_LIBS_INIT "-lpthread")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_HAVE_THREADS_LIBRARY 1)
set(CMAKE_USE_WIN32_THREADS_INIT 0)
set(CMAKE_USE_PTHREADS_INIT 1)
set(THREADS_PREFER_PTHREAD_FLAG ON)

请查看此链接,了解有关CMake的更完整方法。

相关内容

  • 没有找到相关文章

最新更新