2015-02-11 46 views
1

我有一個在JetBrains CLion中的HelloWorld項目,並設置了boost,所以我可以很好地構建它。在windows上包含soci cmake

我已經成功構建soci使用cmakemakemingw以外HelloWorld項目。

對於提升我用:

include(FindBoost) 
find_package(Boost 1.55.0 COMPONENTS system filesystem) 

怎樣包括我cmakesoci庫?是否有包含soci的類似方法?我不知道從哪裏開始?

UPDATE

遠一點,我認爲。

添加以下到我的cmake的選擇:

-D CMAKE_MODULE_PATH=D:\Development\Tools\lib\soci-3.2.2\cmake\modules 

,這給我的CMakeLists.txt

find_package(Soci) 
if(${SOCI_FOUND}) 
    target_link_libraries(HelloWorld ${SOCI_LIBRARY} ${SOCI_sqlite3_PLUGIN}) 
else() 
    message(WARNING "SOCI NOT FOUND") 
endif() 

我仍然得到SOCI NOT FOUND雖然但至少soci變量在cmake緩存輪番上漲。

+0

對於使用'find_package()'指令適當'FindXXX.cmake'模塊應提供。一些模塊可以用'CMake'。所以看起來你需要編寫你自己的'FindSOCI.cmake'模塊。附:你應該使用[這個已經存在的模塊](https://github.com/SOCI/soci/blob/master/src/cmake/modules/FindSoci.cmake)。 – Gluttton 2015-02-11 12:59:17

+0

@Gluttton,'FindSoci'在D:\ Development \ Tools \ lib \ soci-3.2.2 \ cmake \ modules'中,所以這似乎工作。或者不是嗎?附:這就是我正在使用的那個:) – Asken 2015-02-11 13:03:09

+0

@Asken我很快檢查了尖銳的模塊,在我看來,它是更具針對性的Linux/Unix環境,具有精確的路徑作爲提示。在執行https://github.com/SOCI/soci/issues/394之後,我認爲應該解決這個問題。但沒人知道它何時發生。 – 2016-01-13 10:06:42

回答

0

這顯然是非常晚,但它的工作對我來說:

target_link_libraries(HelloWorld soci_core soci_mysql) 
+0

只要添加了一些有用的東西,就不要太遲 – Asken 2017-02-27 07:02:21