无法将本地编译的库添加到 CMake 项目
Can't add locally compiled library to CMake project
作为我正在从事的项目的一部分,我需要使用webkitgtk 库。我下载了图书馆(Tarball(并按照此处描述进行编译。
完成编译后:
Lib的标题在/usr/local/include
中。
LIB的.so
文件在/usr/local/lib
中。
在我的C 项目中,我尝试添加以下CMakeLists.txt
文件:
cmake_minimum_required(VERSION 3.7)
project(CVE_2016_4657)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
add_executable(CVE_2016_4657 ${SOURCE_FILES})
find_package(PkgConfig REQUIRED)
include_directories(/usr/local/include/webkitgtk-4.0)
link_directories(/usr/local/lib/webkit2gtk-4.0)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
include_directories(${GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS})
add_definitions(${GTK3_CFLAGS_OTHER})
pkg_check_modules(SOUP REQUIRED libsoup-2.4)
include_directories(${SOUP_INCLUDE_DIRS})
link_directories(${SOUP_LIBRARY_DIRS})
add_definitions(${SOUP_CFLAGS_OTHER})
target_link_libraries(
CVE_2016_4657
${GTK3_LIBRARIES}
${SOUP_LIBRARIES})
但是,在编译项目时,我会收到以下错误:
[ 50%] Linking CXX executable CVE_2016_4657
CMakeFiles/CVE_2016_4657.dir/main.cpp.o: In function `main':
/home/idanas/CLionProjects/Switcheroo/main.cpp:17: undefined reference to
`webkit_web_view_get_type'
/home/idanas/CLionProjects/Switcheroo/main.cpp:17: undefined reference to
`webkit_web_view_new'
/home/idanas/CLionProjects/Switcheroo/main.cpp:29: undefined reference to
`webkit_web_view_load_uri'
collect2: error: ld returned 1 exit status
CMakeFiles/CVE_2016_4657.dir/build.make:94: recipe for target
'CVE_2016_4657' failed
make[3]: *** [CVE_2016_4657] Error 1
CMakeFiles/Makefile2:67: recipe for target
'CMakeFiles/CVE_2016_4657.dir/all' failed
make[2]: *** [CMakeFiles/CVE_2016_4657.dir/all] Error 2
CMakeFiles/Makefile2:79: recipe for target
'CMakeFiles/CVE_2016_4657.dir/rule' failed
make[1]: *** [CMakeFiles/CVE_2016_4657.dir/rule] Error 2
Makefile:118: recipe for target 'CVE_2016_4657' failed
make: *** [CVE_2016_4657] Error 2
我几乎没有CMAKE的经验,并且可以真正使用一些帮助。
您正在尝试使用webkitgtk ,这是与gtk 和libsoup的单独库。您需要再次为WebKitgtk 复制pkg_check_modules()
代码。您需要首先确定是否使用WebKit1或WebKit2(它们具有不同的API(,然后为该版本的WebKitgTk 找到适当的pkg-config名称;检查您的/usr/lib/pkgconfig
目录的文档和内容。
相关文章:
- cmake:添加要搜索头文件的目录
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- 尝试将 boost::stacktrace 添加到 CMake 项目时出现构建错误
- 如何在 CMake 中添加预编译标头用于 Visual Studio 生成器
- 无法使用 CMake 从其他文件夹添加源文件
- 在 CMake 中添加全局编译标志
- 通过 CMake 添加子项目
- 将 swig2.0 添加到 usr/bin/ 以运行 CMake
- CMake VS_PACKAGE_REFERENCES不添加对 VS2017 项目的引用
- CMake 添加不区分大小写的源文件
- 将目录添加到没有 CMakeLists.txt 的 CMake 项目
- 如何使用自制软件,cMake和cLion将库添加到C++项目中
- 在现代 CMake 中添加接口库作为系统
- CMake 添加和删除宏定义以编译共享库/可执行文件
- 将 curlpp 添加到 cmake 项目
- 为什么cmake还为导入的包添加编译选项
- 如何将libpqxx库添加到cmake
- CMake:将GTest添加到构建中
- 如何为依赖项目标添加 cmake 定义
- 在KDevelop中添加CMAKE变量到项目中