簡體   English   中英

提升鏈接問題-多個版本

[英]Boost Linking Issues - Multiple Versions

我正在編寫一個必須讀取二進制.MAT文件的C ++應用程序。 因此,我需要使用libmat和libmex來執行此操作(請注意,雖然我沒有使用MEX文件)。 我也試圖使用boost::program_options來處理命令行參數解析,因為這是一個非GUI應用程序。 我正在使用CMake處理我的構建環境。

我們正在使用的boost版本為1.59。 但是,當我嘗試鏈接program_options時,CMake會在MATLAB庫中找到boost::program_options庫,而MATLAB庫則需要boost 1.49。 然后,當我嘗試運行已編譯的應用程序時,由於使用了1.59的標頭,但使用了MATLAB的1.49副本中的庫,它崩潰了。 是否有人對我如何使用Boost的兩個版本有任何想法,因為MATLAB無法在1.59上運行並且MATLAB不包含1.49的包含文件。

如果您的應用程序崩潰,則意味着1.49和1.59不二進制兼容,因此,唯一可行的方法是強制您的應用程序使用1.59。 可能有兩個選擇:

  • 通過將BOOST_LIBRARYDIR變量設置為CMake,強制CMake使用1.59庫。
  • 通過額外設置Boost_USE_STATIC_LIBS ,強制CMake使用1.59庫及其靜態版本。

我實際上並沒有使用CMake,並且FindBoost.cmake似乎並不總是最新的,因此我不確定100%可以使用static選項,但是請嘗試一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM