<View
android:elevation="3dp"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ff0000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
以上是我的add_library(target1 funtion.c target1.c )
add_library(target2 funtion.c target2.c )
add_executable(main.out main.c)
target_link_libraries(main.out target1 target2 ${LDFLAGS})
。
两个目标都需要使用源文件CMakeLists.txt
。它能够运行。我担心的是,写function.c
可能不是一个好的行为吗?
答案 0 :(得分:0)
要么您在问题中没有提供足够的信息,要么将function.c
添加到target1
,target2
将无法使用main.out
将它们链接在一起,因为您将有重复的符号。
如果您确定它们不是重复的符号(例如因为function.c
是使用不同的编译标志构建的)那么您的示例是正确的。
答案 1 :(得分:0)
无论多次使用相同的源文件都完全没问题。如果你想用不同的预处理器/编译器标志编译相同的源,有时甚至是必要的。
但是如果你关心编译时间,你可以:
funtion.c
以分隔静态库,并将target1
和target2
库链接起来。function.c
并将输出对象文件存档到target1
和target2
。