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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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
使用cmake构建引用子目录中的库的库_Cmake - Fatal编程技术网

使用cmake构建引用子目录中的库的库

使用cmake构建引用子目录中的库的库,cmake,Cmake,我正在尝试使用当前适用于Unix和Windows的Makefile转换生成。我有以下目录布局: lib1 lib2 lib2依赖于lib1 在lib1中,我使用 ld -r obj1.o -o lib1.o'. 在lib2中,我还使用lib1目录中创建的lib1.o文件创建了一个.o文件,使用: ld -r obj2.o ../lib1/lib1.o -o lib2.o 在Windows上,除了我们使用lib1中的lib命令创建一个.lib文件外,它非常相似: lib -out:lib1

我正在尝试使用当前适用于Unix和Windows的Makefile转换生成。我有以下目录布局:

  • lib1
  • lib2
lib2依赖于lib1

在lib1中,我使用

ld -r obj1.o -o lib1.o'.
在lib2中,我还使用lib1目录中创建的lib1.o文件创建了一个.o文件,使用:

ld -r obj2.o ../lib1/lib1.o -o lib2.o
在Windows上,除了我们使用lib1中的lib命令创建一个.lib文件外,它非常相似:

lib -out:lib1.lib obj1.obj
在lib2中:

lib -out:lib2.lib obj2.obj ..\lib1\lib1.lib
不幸的是,无论我做什么,lib1.o对象文件在构建lib2.o时从未出现

我的CMakeLists.txt文件位于lib1中:

project (lib1)
add_library(lib1 obj1.c)
在lib2中:

project (lib2)
add_library(lib2 obj2.c)
target_link_libraries(lib2 lib1)
从根本上说,我有:

project (root)
add_subdirectory(lib1)
add_subdirectory(lib2)
add_dependencies(lib2 lib1)
实现这一目标,我还缺少什么吗

谢谢,
Manu

您需要
目标链接库()
而不是
添加依赖项()
。我为'lib2'做了这项工作,但它似乎没有任何效果。这应该可以正常工作。您是否尝试过创建上面的最小示例?你实际拥有的东西和你在这里展示的东西可能有区别?