2011-07-18 133 views
1

我使用firebreath制作npAPI插件。我无法使用CMake链接库

我的代码使用giblib,所以我的CMakeLists.txt

find_library(TESTLIB_LIBRARY2 giblib) 
include_directories(${TESTLIB_INCLUDE_DIRS}) 
target_link_libraries(UbuntuCaptureTest TESTLIB_LIBRARY2) 

加入这样的代码我是一个关于cmake的新手

所以我研究过一些的CMake教程,并在firebreath一些资源主页。

(http://www.firebreath.org/display/documentation/Using+Libraries)

我想我重复所有步骤。所以我不明白为什么它不起作用。

这是查找文件的结果。

[email protected]:~/test$ sudo find/-name *giblib* 

/usr/bin/giblib-config 
/usr/share/man/man1/giblib-config.1.gz 
/usr/share/doc/giblib1 
/usr/share/doc/giblib-dev 
/usr/include/giblib 
/usr/include/giblib/giblib.h 
/usr/include/giblib/giblib_config.h 
/usr/lib/libgiblib.so 
/usr/lib/libgiblib.so.1 
/usr/lib/libgiblib.a 
/usr/lib/libgiblib.so.1.0.6 
/usr/lib/libgiblib.la 
/var/lib/dpkg/info/giblib1.symbols 
/var/lib/dpkg/info/giblib1.postrm 
/var/lib/dpkg/info/giblib1.postinst 
/var/lib/dpkg/info/giblib-dev.md5sums 
/var/lib/dpkg/info/giblib-dev.list 
/var/lib/dpkg/info/giblib1.shlibs 
/var/lib/dpkg/info/giblib1.md5sums 
/var/lib/dpkg/info/giblib1.list 
/var/cache/apt/archives/giblib1_1.2.4-5ubuntu1_i386.deb 
/var/cache/apt/archives/giblib-dev_1.2.4-5ubuntu1_i386.deb 
+0

没有什么“不工作”的意思更多的细节,这是很难说出你可能遇到的问题,除了antonakos指出的问题之外。 – taxilian

回答

2

不要链接到一个名为TESTLIB_LIBRARY2但链接到该名称的变量的值库:

target_link_libraries(UbuntuCaptureTest ${TESTLIB_LIBRARY2}) 
+0

重复您的解决方案后,出现此错误消息。 UbuntuCaptureTestAPI.cpp :(文字+ 0xa8b):未定义的引用'XOpenDisplay ' UbuntuCaptureTestAPI.cpp :(文字+ 0xae6):未定义的引用'XScreenNumberOfScreen' ... UbuntuCaptureTestAPI.cpp :(.text + 0xba4):未定义引用'imlib_context_set_visual' –

+1

@도현우那个错误并不意味着我的回答是错误的。这意味着您必须链接到更多库以供您的代码构建。搜索标识符可能会帮助您找出哪些。 – antonakos