Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linker Cmake基本库链接问题_Linker_Cmake - Fatal编程技术网

Linker Cmake基本库链接问题

Linker Cmake基本库链接问题,linker,cmake,Linker,Cmake,我有一个简单的问题,就是库与CMake的链接(我对CMake不是很了解)。 我的配置如下: project/src/CMakeLists.txt (with all .cpp and .h files) project/support/linux/gmp/include/gmp.h project/support/linux/gmp/include/gmpxx.h project/support/linux/gmp/include/libgmp.a project/support/linux/g

我有一个简单的问题,就是库与CMake的链接(我对CMake不是很了解)。 我的配置如下:

project/src/CMakeLists.txt (with all .cpp and .h files)
project/support/linux/gmp/include/gmp.h
project/support/linux/gmp/include/gmpxx.h
project/support/linux/gmp/include/libgmp.a
project/support/linux/gmp/include/libgmpxx.a
如何将图书馆gmp纳入编辑过程?(我在FIND_包、INCLUDE_目录、TARGET_链接_库、ADD_库…命令之间迷失方向)


非常感谢。

CMake并不难理解

第一步

用于定位库

find_package(GMP REQUIRED)
add_executable(ExecutableName Main.cpp)
target_link_libraries(ExecutableName ${GOBJECT_LIBRARIES})
第二步

用于包含库头文件

include_directories(${GOBJECT_INCLUDE_DIR})
第三步

用于将二进制文件链接到库中

find_package(GMP REQUIRED)
add_executable(ExecutableName Main.cpp)
target_link_libraries(ExecutableName ${GOBJECT_LIBRARIES})

谢谢,但我不明白的是,如何找到变量${GOBJECT\u INCLUDE\u DIR}和${GOBJECT\u LIBRARIES}的名称:它们是任意名称吗?它们是否由用户在运行cmake时定义?它们是由find包定义的吗?它们是由find\u包定义的。再见,谢谢。因此,我现在的问题是:查找/链接没有find_包的库(例如名为exlib的个人库,目录为exlib/include和exlib/lib)的命令是什么?我建议您打开一个新问题,因为这种情况(SOF)不是讨论板-我将回答它。这个答案是确定的,假设用户的系统上有FindGMP.cmake模块(默认情况下不存在)。