cmakelist编译报错:2 files found with path 'lib/arm64-v8a/libexosip.so' from inputs 怎么解决
时间: 2024-03-21 11:38:19 浏览: 108
libijkplayer编译后armeabi-v7a、armeabi、arm64-v8a的so文件
这个错误提示是因为在你的 CMakeLists.txt 文件中,有两个或多个文件的路径都指向了 'lib/arm64-v8a/libexosip.so',导致编译器无法确定使用哪个文件。
解决方法如下:
1. 确认你的项目中是否有重复的 'lib/arm64-v8a/libexosip.so' 文件,如果有,需要删除或重命名其中一个文件。
2. 如果你使用了 add_library() 命令来添加库文件,可以使用 EXCLUDE_FROM_ALL 参数来排除其中一个文件,例如:
```
add_library(mylib SHARED ${SOURCE_FILES} lib/arm64-v8a/libexosip1.so lib/arm64-v8a/libexosip2.so EXCLUDE_FROM_ALL)
```
3. 如果你使用了 file() 命令来添加文件,可以使用 EXCLUDE和GLOB_RECURSE参数来排除其中一个文件,例如:
```
file(GLOB_RECURSE MY_SOURCES ${MY_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE MY_EXOSIP_LIBS ${MY_LIBS_DIR}/lib/arm64-v8a/libexosip.so)
list(REMOVE_ITEM MY_EXOSIP_LIBS ${MY_LIBS_DIR}/lib/arm64-v8a/libexosip2.so)
add_library(mylib SHARED ${MY_SOURCES} ${MY_EXOSIP_LIBS})
```
以上是一些解决此类问题的方法,你可以根据具体情况选择适合你的方法进行解决。
阅读全文