可以使用msvc在windows上构建的lib可以在linux程序中使用

时间:2017-10-07 20:53:41

标签: c++ linux windows boost cmake

我在Windows上从源代码构建了boost。我可以在windows上用它编译。<​​/ p>

当我想在linux中使用它编译时:

  

无法找到请求的Boost库。

     

Boost版本:1.65.1

     

Boost包含路径:pathtoproject / deps / boost

     

无法找到以下Boost库:

      boost_system
     

找不到Boost库。您可能需要设置BOOST_LIBRARYDIR   到包含Boost库或BOOST_ROOT的目录   Boost的位置。

所以我设置了findboost调试标志来理解使用

的原因
 set(Boost_DEBUG 1)
在CMake中

我明白了:

  

Boost_FOUND = 1

但也

  

搜索SYSTEM_LIBRARY_RELEASE:boost_system-gcc54-mt-1_65_1; boost_system-gcc54-mt; boost_system-mt-1_65_1; boost_system-mt; boost_system

这意味着cmake正在寻找名为&#34; gcc54 &#34;的其他人。

但是我的libs被命名为&#34; vc141 &#34; (MSVC)。

它可以工作还是我需要2个boost版本才能在两个系统上工作。

1 个答案:

答案 0 :(得分:1)

除非明确支持,否则您通常无法在编译器之间进行混合和匹配。在这种情况下,它非常不受支持。