CMake:" SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})"是什么意思?
CMake: what does " SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})" means?
# If the user hasn't told use specifically what they want, build only
# a static library.
IF(NOT DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
SET(PODOFO_BUILD_STATIC TRUE)
SET(PODOFO_BUILD_SHARED FALSE)
ENDIF(NOT DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
IF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})
ENDIF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
IF(NOT DEFINED PODOFO_BUILD_SHARED AND DEFINED PODOFO_BUILD_STATIC)
SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_STATIC})
ENDIF(NOT DEFINED PODOFO_BUILD_SHARED AND DEFINED PODOFO_BUILD_STATIC)
"SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})"是什么意思? 在这些代码片段之前,我看不到PODOFO_BUILD_SHARED变量的任何定义
- 前 4 行采用 2 个"布尔"变量PODOFO_BUILD_STATIC和PODOFO_BUILD_SHARED,如果未定义它们,则将它们设置为默认值
- 如果只定义了PODOFO_BUILD_SHARED,则后 3 行反转 PODOFO_BUILD_SHARED 的值,无论其初始值是什么。奇怪!
- 最后 3 行采用 PODOFO_BUILD_STATIC 的反转值,如果只定义了 PODOFO_BUILD_STATIC则将其分配给PODOFO_BUILD_SHARED
然而,整体行为似乎有点奇怪。我的猜测是这个(后三行):
IF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})
ENDIF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
应该是:
IF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
SET(PODOFO_BUILD_STATIC NOT ${PODOFO_BUILD_SHARED})
ENDIF(DEFINED PODOFO_BUILD_SHARED AND NOT DEFINED PODOFO_BUILD_STATIC)
这样就更有意义了:如果只定义了 2 个变量中的一个,它将另一个设置为相反的值。
变量"SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})"是什么意思? 在这些代码片段之前,我看不到PODOFO_BUILD_SHARED变量的任何定义
可以通过多种方式预先在文件外部定义(例如,从命令行,或通过cmake-gui
设置缓存变量)
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- CMake "--target install"无需"--build"命令行
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 加载"D:UsersPublicDocumentsopencvbuildx64vc14binopencv_world340d.dll",找不到或打开PDB文件
- meson-build:wxWidgets 资源文件,用于 Windows 未构建
- 为 g++ build 设置超时,为 Sublime Text 运行?
- build error : undefined reference to `yyFlexLexer::yyFlexLex
- 如何使cmake输出到"build"目录?
- 使用Bazel C++教程;build不创建/使用共享库
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- "Build succeeded"但"The breakpoint will not currently be hit"
- build命令失败,外部原生问题android工作室
- Android Studio External Native Build 预编译标头
- /usr/bin/ld: build-debug/obj/gpsitem.o: 文件无法识别: 文件被截断
- Build Boost Regex for Windows VS2013
- 指定 go build 的 C++ 版本
- "ndk-build finish with non-zero exit value 2" 在编译文本仙女项目时
- Build OpenCascade for VS2017
- Android opencv 3.4.1 Build 命令失败.未定义的引用