我正在尝试使用目前适用于Unix和Windows的Makefile转换构建。我有以下目录布局:
lib2依赖于lib1。
在lib1中,我使用
在Unix上创建一个.o文件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)
有什么我不想实现的吗?
谢谢, 马努