2016-11-26 8 views
1

私はcmake構築システムでvalaアプリケーションをコンパイルしようとしていましたが、sqlite3パッケージをリンクしようとすると問題が発生しています。 makeを実行すると、私は得るSqlite3がvala cmakeシステムを構築する

CMakeFiles/app.dir/Database/Database.c.o: In function `template_database_construct_from_file': 
Database.c:(.text+0x8a): undefined reference to `sqlite3_open' 
Database.c:(.text+0xaa): undefined reference to `sqlite3_close' 
Database.c:(.text+0x116): undefined reference to `sqlite3_errcode' 
Database.c:(.text+0x131): undefined reference to `sqlite3_errmsg' 

ほとんど同じエラーの束だけでなく。 --pkg sqlite3を使用してコマンドラインでコンパイルしてコードをテストすることはできますが、問題なくコンパイルできました。それで、なぜcmakeからコンパイルしようとすると正しく動作しないのですか?

ご協力いただきまして誠にありがとうございます。ありがとうございました!

答えて

1

LDFLAGSなどには、pkg-config --libs sqlite3の結果を追加する必要があります。私はCMakeを使っていませんが、これはあなたのテンプレートの問題だと思います。私はAutotoolsを使って同じ問題を経験しました。

+0

@captain この回答があれば、それを受け入れることができます。 –

1

あなたの問題をよりよく理解するには、CMakeLists.txtを参照する必要があります。

それでも、CMakeのをValaのビルドにライブラリをリンクする、次の操作を行います。

find_package(PkgConfig) 
pkg_check_modules(SQLITE3 REQUIRED sqlite3) 
set(CFLAGS 
    ${SQLITE3_CFLAGS} ${SQLITE3_CFLAGS_OTHER} 
    ...) 
add_definitions(${CFLAGS}) 

set(LIBS 
    ${SQLITE3_LIBRARIES} 
    ...)  
link_libraries(${LIBS}) 

set(LIB_PATHS 
    ${SQLITE3_LIBRARY_DIRS} 
    ...) 
link_directories(${LIB_PATHS}) 

より完全な例( "...は" あなたの依存関係の残りの略)はここにある:https://github.com/felipe-lavratti/vala-cmake-example

関連する問題