Xcode6内置环境变量(Build Setting Macros)

本文介绍如何通过Xcode6获取内置环境变量,并详细列出这些变量及其含义,包括常用的环境变量宏,如$(SRCROOT)和$(BUILD_DIR),帮助开发者更好地理解Xcode构建过程。

转载:天狐->Xcode6内置环境变量(Build Setting Macros)

(1)查看环境变量宏

新建一个HelloWorld项目在桌面 ,cd Desktop/HelloWorld/

命令行进入HelloWorld工程目录,执行xcodebuild命令并带上“-showBuildSettings”参数:

$ xcodebuild -project HelloWorld.xcodeproj -target HelloWorld -configuration Debug -showBuildSettings > buildSettings.txt

则buildSettings.txt中保存了Build settings for action build and target "HelloWorld”,其中dump了所有的环境变量。

(2)buildSettings.txt内容  标红的为常见变量

ACTION = build
AD_HOC_CODE_SIGNING_ALLOWED = NO
ALTERNATE_GROUP = staff
ALTERNATE_MODE = u+w,go-w,a+rX
ALTERNATE_OWNER = Jakey
ALWAYS_SEARCH_USER_PATHS = NO
ALWAYS_USE_SEPARATE_HEADERMAPS = YES
APPLE_INTERNAL_DEVELOPER_DIR = /AppleInternal/Developer
APPLE_INTERNAL_DIR = /AppleInternal
APPLE_INTERNAL_DOCUMENTATION_DIR = /AppleInternal/Documentation
APPLE_INTERNAL_LIBRARY_DIR = /AppleInternal/Library
APPLE_INTERNAL_TOOLS = /AppleInternal/Developer/Tools
APPLICATION_EXTENSION_API_ONLY = NO
APPLY_RULES_IN_COPY_FILES = NO
ARCHS = armv7
    ARCHS_STANDARD = armv7 arm64
    ARCHS_STANDARD_32_64_BIT = armv7 arm64
    ARCHS_STANDARD_32_BIT = armv7
    ARCHS_STANDARD_64_BIT = arm64
    ARCHS_STANDARD_INCLUDING_64_BIT = armv7 arm64
    ARCHS_UNIVERSAL_IPHONE_OS = armv7 arm64
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
AVAILABLE_PLATFORMS = iphonesimulator macosx iphoneos
BUILD_COMPONENTS = headers build
    BUILD_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products
    BUILD_ROOT = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products
BUILD_STYLE =
BUILD_VARIANTS = normal
BUILT_PRODUCTS_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos
CACHE_ROOT = /var/folders/j6/l9l22f_n4n1925q46cjpjtn80000gn/C/com.apple.DeveloperTools/6.2-6C131e/Xcode
CCHROOT = /var/folders/j6/l9l22f_n4n1925q46cjpjtn80000gn/C/com.apple.DeveloperTools/6.2-6C131e/Xcode
CHMOD = /bin/chmod
CHOWN = /usr/sbin/chown
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
CLANG_CXX_LIBRARY = libc++
CLANG_ENABLE_MODULES = YES
CLANG_ENABLE_OBJC_ARC = YES
CLANG_WARN_BOOL_CONVERSION = YES
CLANG_WARN_CONSTANT_CONVERSION = YES
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
CLANG_WARN_EMPTY_BODY = YES
CLANG_WARN_ENUM_CONVERSION = YES
CLANG_WARN_INT_CONVERSION = YES
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
CLANG_WARN_UNREACHABLE_CODE = YES
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLASS_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/JavaClasses
CLEAN_PRECOMPS = YES
CLONE_HEADERS = NO
CODESIGNING_FOLDER_PATH = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos/HelloWorld.app
CODE_SIGNING_ALLOWED = YES
CODE_SIGNING_REQUIRED = YES
CODE_SIGN_CONTEXT_CLASS = XCiPhoneOSCodeSignContext
CODE_SIGN_IDENTITY = iPhone Developer
COLOR_DIAGNOSTICS = YES
COMBINE_HIDPI_IMAGES = NO
COMPOSITE_SDK_DIRS = /var/folders/j6/l9l22f_n4n1925q46cjpjtn80000gn/C/com.apple.DeveloperTools/6.2-6C131e/Xcode/CompositeSDKs
COMPRESS_PNG_FILES = YES
CONFIGURATION = Debug
  CONFIGURATION_BUILD_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos
    CONFIGURATION_TEMP_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos
    CONTENTS_FOLDER_PATH = HelloWorld.app
COPYING_PRESERVES_HFS_DATA = NO
COPY_PHASE_STRIP = NO
COPY_RESOURCES_FROM_STATIC_FRAMEWORKS = YES
CP = /bin/cp
CREATE_INFOPLIST_SECTION_IN_BINARY = NO
CURRENT_ARCH = armv7
CURRENT_VARIANT = normal
DEAD_CODE_STRIPPING = YES
DEBUGGING_SYMBOLS = YES
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
DEFAULT_COMPILER = com.apple.compilers.llvm.clang.1_0
DEFAULT_KEXT_INSTALL_PATH = /System/Library/Extensions
DEFINES_MODULE = NO
DEPLOYMENT_LOCATION = NO
DEPLOYMENT_POSTPROCESSING = NO
DERIVED_FILES_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/DerivedSources
DERIVED_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/DerivedSources
DERIVED_SOURCES_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/DerivedSources
DEVELOPER_APPLICATIONS_DIR = /Applications/Xcode.app/Contents/Developer/Applications
    DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/usr/bin
    DEVELOPER_DIR = /Applications/Xcode.app/Contents/Developer
    DEVELOPER_FRAMEWORKS_DIR = /Applications/Xcode.app/Contents/Developer/Library/Frameworks
    DEVELOPER_FRAMEWORKS_DIR_QUOTED = /Applications/Xcode.app/Contents/Developer/Library/Frameworks
    DEVELOPER_LIBRARY_DIR = /Applications/Xcode.app/Contents/Developer/Library
    DEVELOPER_SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
    DEVELOPER_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Tools
    DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/usr
DEVELOPMENT_LANGUAGE = English
DOCUMENTATION_FOLDER_PATH = HelloWorld.app/English.lproj/Documentation
DO_HEADER_SCANNING_IN_JAM = NO
DSTROOT = /tmp/HelloWorld.dst
DT_TOOLCHAIN_DIR = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
DWARF_DSYM_FILE_NAME = HelloWorld.app.dSYM
DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT = NO
DWARF_DSYM_FOLDER_PATH = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos
EFFECTIVE_PLATFORM_NAME = -iphoneos
EMBEDDED_CONTENT_CONTAINS_SWIFT = NO
EMBEDDED_PROFILE_NAME = embedded.mobileprovision
ENABLE_HEADER_DEPENDENCIES = YES
ENABLE_STRICT_OBJC_MSGSEND = YES
ENTITLEMENTS_ALLOWED = YES
ENTITLEMENTS_REQUIRED = YES
EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS = .DS_Store .svn .git .hg CVS
EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = *.nib *.lproj *.framework *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj
EXECUTABLES_FOLDER_PATH = HelloWorld.app/Executables
EXECUTABLE_FOLDER_PATH = HelloWorld.app
EXECUTABLE_NAME = HelloWorld
EXECUTABLE_PATH = HelloWorld.app/HelloWorld
EXPANDED_CODE_SIGN_IDENTITY =
EXPANDED_CODE_SIGN_IDENTITY_NAME =
EXPANDED_PROVISIONING_PROFILE =
FILE_LIST = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/Objects/LinkFileList
FIXED_FILES_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/FixedFiles
FRAMEWORKS_FOLDER_PATH = HelloWorld.app/Frameworks
FRAMEWORK_FLAG_PREFIX = -framework
FRAMEWORK_VERSION = A
FULL_PRODUCT_NAME = HelloWorld.app
GCC3_VERSION = 3.3
GCC_C_LANGUAGE_STANDARD = gnu99
GCC_DYNAMIC_NO_PIC = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_OPTIMIZATION_LEVEL = 0
GCC_PFE_FILE_C_DIALECTS = c objective-c c++ objective-c++
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
GCC_SYMBOLS_PRIVATE_EXTERN = NO
GCC_THUMB_SUPPORT = YES
GCC_TREAT_WARNINGS_AS_ERRORS = NO
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
GCC_VERSION_IDENTIFIER = com_apple_compilers_llvm_clang_1_0
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
GCC_WARN_UNDECLARED_SELECTOR = YES
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_VARIABLE = YES
GENERATE_MASTER_OBJECT_FILE = NO
GENERATE_PKGINFO_FILE = YES
GENERATE_PROFILING_CODE = NO
GID = 20
GROUP = staff
HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT = YES
HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES = YES
HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS = YES
HEADERMAP_INCLUDES_PROJECT_HEADERS = YES
HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES = YES
HEADERMAP_USES_VFS = NO
HEADER_SEARCH_PATHS =  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
ICONV = /usr/bin/iconv
INFOPLIST_EXPAND_BUILD_SETTINGS = YES
INFOPLIST_FILE = HelloWorld/Info.plist
INFOPLIST_OUTPUT_FORMAT = binary
INFOPLIST_PATH = HelloWorld.app/Info.plist
INFOPLIST_PREPROCESS = NO
INFOSTRINGS_PATH = HelloWorld.app/English.lproj/InfoPlist.strings
INSTALL_DIR = /tmp/HelloWorld.dst/Applications
INSTALL_GROUP = staff
INSTALL_MODE_FLAG = u+w,go-w,a+rX
INSTALL_OWNER = Jakey
INSTALL_PATH = /Applications
INSTALL_ROOT = /tmp/HelloWorld.dst
IPHONEOS_DEPLOYMENT_TARGET = 8.2
JAVAC_DEFAULT_FLAGS = -J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8
JAVA_APP_STUB = /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
JAVA_ARCHIVE_CLASSES = YES
JAVA_ARCHIVE_TYPE = JAR
JAVA_COMPILER = /usr/bin/javac
JAVA_FOLDER_PATH = HelloWorld.app/Java
JAVA_FRAMEWORK_RESOURCES_DIRS = Resources
JAVA_JAR_FLAGS = cv
JAVA_SOURCE_SUBDIR = .
JAVA_USE_DEPENDENCIES = YES
JAVA_ZIP_FLAGS = -urg
JIKES_DEFAULT_FLAGS = +E +OLDCSO
KEEP_PRIVATE_EXTERNS = NO
LD_DEPENDENCY_INFO_FILE = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/Objects-normal/armv7/HelloWorld_dependency_info.dat
LD_GENERATE_MAP_FILE = NO
LD_MAP_FILE_PATH = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/HelloWorld-LinkMap-normal-armv7.txt
LD_NO_PIE = NO
LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER = YES
LD_RUNPATH_SEARCH_PATHS =  @executable_path/Frameworks
LEGACY_DEVELOPER_DIR = /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer
LEX = lex
LIBRARY_FLAG_NOSPACE = YES
LIBRARY_FLAG_PREFIX = -l
LIBRARY_KEXT_INSTALL_PATH = /Library/Extensions
LINKER_DISPLAYS_MANGLED_NAMES = NO
LINK_FILE_LIST_normal_armv7 =
LINK_WITH_STANDARD_LIBRARIES = YES
LOCALIZED_RESOURCES_FOLDER_PATH = HelloWorld.app/English.lproj
LOCAL_ADMIN_APPS_DIR = /Applications/Utilities
LOCAL_APPS_DIR = /Applications
LOCAL_DEVELOPER_DIR = /Library/Developer
LOCAL_LIBRARY_DIR = /Library
MACH_O_TYPE = mh_execute
MAC_OS_X_PRODUCT_BUILD_VERSION = 14C109
MAC_OS_X_VERSION_ACTUAL = 101002
MAC_OS_X_VERSION_MAJOR = 101000
MAC_OS_X_VERSION_MINOR = 1002
MODULE_CACHE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/ModuleCache
MTL_ENABLE_DEBUG_INFO = YES
NATIVE_ARCH = armv7
NATIVE_ARCH_32_BIT = i386
NATIVE_ARCH_64_BIT = x86_64
NATIVE_ARCH_ACTUAL = x86_64
NO_COMMON = YES
OBJECT_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/Objects
OBJECT_FILE_DIR_normal = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/Objects-normal
OBJROOT = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates
ONLY_ACTIVE_ARCH = YES
OPTIMIZATION_LEVEL = 0
OS = MACOS
OSAC = /usr/bin/osacompile
PACKAGE_TYPE = com.apple.package-type.wrapper.application
PASCAL_STRINGS = YES
PATH = /Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES = /usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Applications/Xcode.app/Contents/Developer/Headers /Applications/Xcode.app/Contents/Developer/SDKs /Applications/Xcode.app/Contents/Developer/Platforms
PBDEVELOPMENTPLIST_PATH = HelloWorld.app/pbdevelopment.plist
PFE_FILE_C_DIALECTS = objective-c
PKGINFO_FILE_PATH = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/PkgInfo
PKGINFO_PATH = HelloWorld.app/PkgInfo
PLATFORM_DEVELOPER_APPLICATIONS_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Applications
PLATFORM_DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
PLATFORM_DEVELOPER_LIBRARY_DIR = /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library
PLATFORM_DEVELOPER_SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
PLATFORM_DEVELOPER_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Tools
PLATFORM_DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr
PLATFORM_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
PLATFORM_NAME = iphoneos
PLATFORM_PREFERRED_ARCH = arm64
PLATFORM_PRODUCT_BUILD_VERSION = 12D508
PLIST_FILE_OUTPUT_FORMAT = binary
PLUGINS_FOLDER_PATH = HelloWorld.app/PlugIns
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES
PRECOMP_DESTINATION_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/PrefixHeaders
PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO
PRIVATE_HEADERS_FOLDER_PATH = HelloWorld.app/PrivateHeaders
PRODUCT_MODULE_NAME = HelloWorld
  PRODUCT_NAME = HelloWorld
    PRODUCT_SETTINGS_PATH = /Users/Jakey/Desktop/HelloWorld/HelloWorld/Info.plist
PRODUCT_TYPE = com.apple.product-type.application
PROFILING_CODE = NO
    PROJECT = HelloWorld
PROJECT_DERIVED_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/DerivedSources
PROJECT_DIR = /Users/Jakey/Desktop/HelloWorld
    PROJECT_FILE_PATH = /Users/Jakey/Desktop/HelloWorld/HelloWorld.xcodeproj
    PROJECT_NAME = HelloWorld
    PROJECT_TEMP_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build
    PROJECT_TEMP_ROOT = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates
PROVISIONING_PROFILE_REQUIRED = YES
PUBLIC_HEADERS_FOLDER_PATH = HelloWorld.app/Headers
RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS = YES
REMOVE_CVS_FROM_RESOURCES = YES
REMOVE_GIT_FROM_RESOURCES = YES
REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES = YES
REMOVE_HG_FROM_RESOURCES = YES
REMOVE_SVN_FROM_RESOURCES = YES
RESOURCE_RULES_REQUIRED = YES
REZ_COLLECTOR_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/ResourceManagerResources
REZ_OBJECTS_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build/ResourceManagerResources/Objects
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = NO
SCRIPTS_FOLDER_PATH = HelloWorld.app/Scripts
  SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.2.sdk
    SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.2.sdk
    SDK_NAME = iphoneos8.2
SDK_PRODUCT_BUILD_VERSION = 12D508
SED = /usr/bin/sed
SEPARATE_STRIP = NO
SEPARATE_SYMBOL_EDIT = NO
SET_DIR_MODE_OWNER_GROUP = YES
SET_FILE_MODE_OWNER_GROUP = NO
SHALLOW_BUNDLE = YES
SHARED_DERIVED_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos/DerivedSources
SHARED_FRAMEWORKS_FOLDER_PATH = HelloWorld.app/SharedFrameworks
SHARED_PRECOMPS_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/PrecompiledHeaders
SHARED_SUPPORT_FOLDER_PATH = HelloWorld.app/SharedSupport
SKIP_INSTALL = NO
SOURCE_ROOT = /Users/Jakey/Desktop/HelloWorld
SRCROOT = /Users/Jakey/Desktop/HelloWorld
STRINGS_FILE_OUTPUT_ENCODING = binary
STRIP_INSTALLED_PRODUCT = YES
STRIP_STYLE = all
SUPPORTED_DEVICE_FAMILIES = 1,2
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
SYMROOT = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products
SYSTEM_ADMIN_APPS_DIR = /Applications/Utilities
SYSTEM_APPS_DIR = /Applications
    SYSTEM_CORE_SERVICES_DIR = /System/Library/CoreServices
SYSTEM_DEMOS_DIR = /Applications/Extras
SYSTEM_DEVELOPER_APPS_DIR = /Applications/Xcode.app/Contents/Developer/Applications
SYSTEM_DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/usr/bin
SYSTEM_DEVELOPER_DEMOS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Utilities/Built Examples
    SYSTEM_DEVELOPER_DIR = /Applications/Xcode.app/Contents/Developer
SYSTEM_DEVELOPER_DOC_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library
SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Graphics Tools
SYSTEM_DEVELOPER_JAVA_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Java Tools
SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Performance Tools
SYSTEM_DEVELOPER_RELEASENOTES_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes
SYSTEM_DEVELOPER_TOOLS = /Applications/Xcode.app/Contents/Developer/Tools
SYSTEM_DEVELOPER_TOOLS_DOC_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/documentation/DeveloperTools
SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes/DeveloperTools
SYSTEM_DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/usr
SYSTEM_DEVELOPER_UTILITIES_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Utilities
SYSTEM_DOCUMENTATION_DIR = /Library/Documentation
SYSTEM_KEXT_INSTALL_PATH = /System/Library/Extensions
    SYSTEM_LIBRARY_DIR = /System/Library
TARGETED_DEVICE_FAMILY = 1
    TARGETNAME = HelloWorld
TARGET_BUILD_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Products/Debug-iphoneos
    TARGET_NAME = HelloWorld
    TARGET_TEMP_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build
    TEMP_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build
    TEMP_FILES_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build
    TEMP_FILE_DIR = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates/HelloWorld.build/Debug-iphoneos/HelloWorld.build
TEMP_ROOT = /Users/Jakey/Library/Developer/Xcode/DerivedData/HelloWorld-atxvrcjabmzxnvbjfgcywwzjozpz/Build/Intermediates
TOOLCHAINS = com.apple.dt.toolchain.iOS8_2
TREAT_MISSING_BASELINES_AS_TEST_FAILURES = NO
UID = 501
UNLOCALIZED_RESOURCES_FOLDER_PATH = HelloWorld.app
UNSTRIPPED_PRODUCT = NO
USER = Jakey
USER_APPS_DIR = /Users/Jakey/Applications
USER_LIBRARY_DIR = /Users/Jakey/Library
USE_DYNAMIC_NO_PIC = YES
USE_HEADERMAP = YES
USE_HEADER_SYMLINKS = NO
VALIDATE_PRODUCT = NO
    VALID_ARCHS = arm64 armv7 armv7s
VERBOSE_PBXCP = NO
VERSIONPLIST_PATH = HelloWorld.app/version.plist
VERSION_INFO_BUILDER = Jakey
VERSION_INFO_FILE = HelloWorld_vers.c
VERSION_INFO_STRING = "@(#)PROGRAM:HelloWorld  PROJECT:HelloWorld-"
WRAPPER_EXTENSION = app
WRAPPER_NAME = HelloWorld.app
WRAPPER_SUFFIX = .app
XCODE_APP_SUPPORT_DIR = /Applications/Xcode.app/Contents/Developer/Library/Xcode
XCODE_PRODUCT_BUILD_VERSION = 6C131e
XCODE_VERSION_ACTUAL = 0620
XCODE_VERSION_MAJOR = 0600
XCODE_VERSION_MINOR = 0620
XPCSERVICES_FOLDER_PATH = HelloWorld.app/XPCServices
YACC = yacc
arch = armv7
diagnostic_message_length = 80
variant = normal

(3)常用变量

$(SYSTEM_APPS_DIR)
$(DEVELOPER_FRAMEWORKS_DIR)
$(PROJECT_DIR)
$(SRCROOT)
$(SDKROOT)
$(SOURCE_ROOT)

$(PROJECT)
$(BUILD_DIR)
$(BUILD_ROOT)
$(BUILT_PRODUCTS_DIR)
$(TARGET_BUILD_DIR)
$(TARGET_NAME)
$(CONFIGURATION_TEMP_DIR)
$(CONFIGURATION_BUILD_DIR)

### ---[ PCL global CMake cmake_minimum_required(VERSION 2.8 FATAL_ERROR) set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "possible configurations" FORCE) if("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "build type default to RelWithDebInfo, set to Release to improve performance" FORCE) endif("${CMAKE_BUILD_TYPE}" STREQUAL "") project(PCL) string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH}) if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") add_definitions("-DBOOST_DISABLE_ASSERTS -DEIGEN_NO_DEBUG") endif() if(WIN32) if(NOT DEFINED CMAKE_DEBUG_POSTFIX) set(CMAKE_DEBUG_POSTFIX "_debug") endif() if(NOT DEFINED CMAKE_RELEASE_POSTFIX) set(CMAKE_RELEASE_POSTFIX "_release") endif() endif() SET(CMAKE_CXX_FLAGS_MAINTAINER "-pedantic -Wno-variadic-macros -Wabi -Wextra -Weffc++" CACHE STRING "" FORCE) SET(CMAKE_C_FLAGS_MAINTAINER "-pedantic -Wno-variadic-macros -Wabi -Wextra -Weffc++" CACHE STRING "" FORCE) SET(CMAKE_EXE_LINKER_FLAGS_MAINTAINER "-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING "" FORCE) SET(CMAKE_SHARED_LINKER_FLAGS_MAINTAINER "-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING "" FORCE) MARK_AS_ADVANCED( CMAKE_CXX_FLAGS_MAINTAINER CMAKE_C_FLAGS_MAINTAINER CMAKE_EXE_LINKER_FLAGS_MAINTAINER CMAKE_SHARED_LINKER_FLAGS_MAINTAINER ) SET(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel Maintainer." FORCE) option(PCL_SHARED_LIBS ON) if (ANDROID_NDK) set (PCL_SHARED_LIBS OFF) message ("PCL shared libs on Android must be: ${PCL_SHARED_LIBS}") endif() include(${PCL_SOURCE_DIR}/cmake/pcl_targets.cmake) include(${PCL_SOURCE_DIR}/cmake/pcl_options.cmake) if(CMAKE_COMPILER_IS_GNUCXX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -fno-strict-aliasing -pthread") if(WIN32) if(PCL_SHARED_LIBS) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--export-all-symbols -Wl,--enable-auto-import") else(PCL_SHARED_LIBS) add_definitions("-DBOOST_LIB_DIAGNOSTIC -DBOOST_THREAD_USE_LIB") endif(PCL_SHARED_LIBS) endif() endif() if(MSVC) add_definitions ("-DBOOST_ALL_NO_LIB -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /EHsc /fp:fast") if(MSVC90 OR MSVC10) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") endif() endif() include(${PCL_SOURCE_DIR}/cmake/pcl_find_sse.cmake) PCL_CHECK_FOR_SSE() if (__COMPILER_PATHSCALE) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized -zerouv -pthread -mp") endif() if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif() option(USE_PROJECT_FOLDERS "Use folders to organize PCL projects in an IDE." OFF) mark_as_advanced(USE_PROJECT_FOLDERS) if(USE_PROJECT_FOLDERS) set_property(GLOBAL PROPERTY USE_FOLDERS ON) endif(USE_PROJECT_FOLDERS) include(${PCL_SOURCE_DIR}/cmake/pcl_utils.cmake) set(PCL_VERSION 1.5.1 CACHE STRING "PCL version") DISSECT_VERSION() GET_OS_INFO() SET_INSTALL_DIRS() if(WIN32) set(PCL_RESOURCES_DIR ${PCL_SOURCE_DIR}/resources) set(PCL_POINTCLOUDS_DIR ${PCL_RESOURCES_DIR}/pointclouds) endif(WIN32) set(PCL_OUTPUT_LIB_DIR ${PCL_BINARY_DIR}/${LIB_INSTALL_DIR}) set(PCL_OUTPUT_BIN_DIR ${PCL_BINARY_DIR}/${BIN_INSTALL_DIR}) make_directory(${PCL_OUTPUT_LIB_DIR}) make_directory(${PCL_OUTPUT_BIN_DIR}) if(WIN32) foreach(config ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${config} CONFIG) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONFIG} "${PCL_OUTPUT_LIB_DIR}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONFIG} "${PCL_OUTPUT_BIN_DIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONFIG} "${PCL_OUTPUT_BIN_DIR}") endforeach(config) else(WIN32) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PCL_OUTPUT_LIB_DIR}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PCL_OUTPUT_BIN_DIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PCL_OUTPUT_LIB_DIR}") endif(WIN32) configure_file("${PCL_SOURCE_DIR}/cmake/uninstall_target.cmake.in" "${PCL_BINARY_DIR}/uninstall_target.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${PCL_BINARY_DIR}/uninstall_target.cmake") SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" is_system_dir) IF("${is_system_dir}" STREQUAL "-1") SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") ENDIF("${is_system_dir}" STREQUAL "-1") option(BUILD_OPENNI ON) option(BUILD_TESTS OFF) option(BUILD_all_in_one_installer OFF) option(BUILD_apps ON) option(BUILD_common ON) option(BUILD_examples ON) option(BUILD_features ON) option(BUILD_filters ON) option(BUILD_global_tests OFF) option(BUILD_io ON) option(BUILD_kdtree ON) option(BUILD_keypoints ON) option(BUILD_octree ON) option(BUILD_registration ON) option(BUILD_sample_consensus ON) option(BUILD_search ON) option(BUILD_segmentation ON) option(BUILD_surface ON) option(BUILD_tools ON) option(BUILD_tracking ON) option(BUILD_visualization ON) if(WIN32) if(NOT DEFINED BOOST_ROOT AND DEFINED ENV{BOOST_ROOT}) set(BOOST_ROOT $ENV{BOOST_ROOT} CACHE PATH "BOOST_ROOT") endif() if(NOT DEFINED Boost_INCLUDE_DIR) if(DEFINED BOOST_ROOT AND EXISTS "${BOOST_ROOT}/include") set(Boost_INCLUDE_DIR "${BOOST_ROOT}/include") elseif(DEFINED ENV{BOOST_ROOT} AND EXISTS "$ENV{BOOST_ROOT}/include") set(Boost_INCLUDE_DIR "$ENV{BOOST_ROOT}/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/include") set(Boost_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/include") else() set(Boost_INCLUDE_DIR "") endif() endif() set(Boost_INCLUDE_DIR "${Boost_INCLUDE_DIR}" CACHE PATH "Boost_INCLUDE_DIR" FORCE) mark_as_advanced(CLEAR Boost_INCLUDE_DIR) if(Boost_INCLUDE_DIR AND EXISTS "${Boost_INCLUDE_DIR}") include_directories("${Boost_INCLUDE_DIR}") endif() if(NOT DEFINED Boost_LIBRARY_DIR_RELEASE) if(EXISTS "${BOOST_ROOT}/lib/Release") set(Boost_LIBRARY_DIR_RELEASE "${BOOST_ROOT}/lib/Release") elseif(EXISTS "${BOOST_ROOT}/stage/lib") set(Boost_LIBRARY_DIR_RELEASE "${BOOST_ROOT}/stage/lib") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Release") set(Boost_LIBRARY_DIR_RELEASE "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Release") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") set(Boost_LIBRARY_DIR_RELEASE "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") else() set(Boost_LIBRARY_DIR_RELEASE "") endif() endif() if(NOT DEFINED Boost_LIBRARY_DIR_DEBUG) if(EXISTS "${BOOST_ROOT}/lib/Debug") set(Boost_LIBRARY_DIR_DEBUG "${BOOST_ROOT}/lib/Debug") elseif(EXISTS "${BOOST_ROOT}/stage/lib") set(Boost_LIBRARY_DIR_DEBUG "${BOOST_ROOT}/stage/lib") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Debug") set(Boost_LIBRARY_DIR_DEBUG "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Debug") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") set(Boost_LIBRARY_DIR_DEBUG "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") else() set(Boost_LIBRARY_DIR_DEBUG "") endif() endif() set(Boost_LIBRARY_DIR_RELEASE "${Boost_LIBRARY_DIR_RELEASE}" CACHE PATH "Boost_LIBRARY_DIR_RELEASE" FORCE) set(Boost_LIBRARY_DIR_DEBUG "${Boost_LIBRARY_DIR_DEBUG}" CACHE PATH "Boost_LIBRARY_DIR_DEBUG" FORCE) mark_as_advanced(CLEAR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG) if(Boost_LIBRARY_DIR_RELEASE AND EXISTS "${Boost_LIBRARY_DIR_RELEASE}") link_directories("${Boost_LIBRARY_DIR_RELEASE}") endif() if(Boost_LIBRARY_DIR_DEBUG AND EXISTS "${Boost_LIBRARY_DIR_DEBUG}") link_directories("${Boost_LIBRARY_DIR_DEBUG}") endif() find_library(Boost_SYSTEM_LIBRARY_RELEASE NAMES boost_system boost_system-mt boost_system-vc90-mt boost_system-vc90-mt-1_69 libboost_system-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_SYSTEM_LIBRARY_DEBUG NAMES boost_system-gd boost_system-mt-gd boost_system-vc90-mt-gd boost_system-vc90-mt-gd-1_69 libboost_system-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_FILESYSTEM_LIBRARY_RELEASE NAMES boost_filesystem boost_filesystem-mt boost_filesystem-vc90-mt boost_filesystem-vc90-mt-1_69 libboost_filesystem-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_FILESYSTEM_LIBRARY_DEBUG NAMES boost_filesystem-gd boost_filesystem-mt-gd boost_filesystem-vc90-mt-gd boost_filesystem-vc90-mt-gd-1_69 libboost_filesystem-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_THREAD_LIBRARY_RELEASE NAMES boost_thread boost_thread-mt boost_thread-vc90-mt boost_thread-vc90-mt-1_69 libboost_thread-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_THREAD_LIBRARY_DEBUG NAMES boost_thread-gd boost_thread-mt-gd boost_thread-vc90-mt-gd boost_thread-vc90-mt-gd-1_69 libboost_thread-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_DATE_TIME_LIBRARY_RELEASE NAMES boost_date_time boost_date_time-mt boost_date_time-vc90-mt boost_date_time-vc90-mt-1_69 libboost_date_time-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_DATE_TIME_LIBRARY_DEBUG NAMES boost_date_time-gd boost_date_time-mt-gd boost_date_time-vc90-mt-gd boost_date_time-vc90-mt-gd-1_69 libboost_date_time-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_IOSTREAMS_LIBRARY_RELEASE NAMES boost_iostreams boost_iostreams-mt boost_iostreams-vc90-mt boost_iostreams-vc90-mt-1_69 libboost_iostreams-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_IOSTREAMS_LIBRARY_DEBUG NAMES boost_iostreams-gd boost_iostreams-mt-gd boost_iostreams-vc90-mt-gd boost_iostreams-vc90-mt-gd-1_69 libboost_iostreams-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_SERIALIZATION_LIBRARY_RELEASE NAMES boost_serialization boost_serialization-mt boost_serialization-vc90-mt boost_serialization-vc90-mt-1_69 libboost_serialization-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_SERIALIZATION_LIBRARY_DEBUG NAMES boost_serialization-gd boost_serialization-mt-gd boost_serialization-vc90-mt-gd boost_serialization-vc90-mt-gd-1_69 libboost_serialization-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_MPl_LIBRARY_RELEASE NAMES boost_mpi boost_mpi-mt boost_mpi-vc90-mt HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_MPl_LIBRARY_DEBUG NAMES boost_mpi-gd boost_mpi-mt-gd boost_mpi-vc90-mt-gd HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") set(Boost_SYSTEM_LIBRARY_RELEASE "${Boost_SYSTEM_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_SYSTEM_LIBRARY_RELEASE") set(Boost_SYSTEM_LIBRARY_DEBUG "${Boost_SYSTEM_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_SYSTEM_LIBRARY_DEBUG") set(Boost_FILESYSTEM_LIBRARY_RELEASE "${Boost_FILESYSTEM_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_FILESYSTEM_LIBRARY_RELEASE") set(Boost_FILESYSTEM_LIBRARY_DEBUG "${Boost_FILESYSTEM_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_FILESYSTEM_LIBRARY_DEBUG") set(Boost_THREAD_LIBRARY_RELEASE "${Boost_THREAD_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_THREAD_LIBRARY_RELEASE") set(Boost_THREAD_LIBRARY_DEBUG "${Boost_THREAD_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_THREAD_LIBRARY_DEBUG") set(Boost_DATE_TIME_LIBRARY_RELEASE "${Boost_DATE_TIME_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_DATE_TIME_LIBRARY_RELEASE") set(Boost_DATE_TIME_LIBRARY_DEBUG "${Boost_DATE_TIME_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_DATE_TIME_LIBRARY_DEBUG") set(Boost_IOSTREAMS_LIBRARY_RELEASE "${Boost_IOSTREAMS_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_IOSTREAMS_LIBRARY_RELEASE") set(Boost_IOSTREAMS_LIBRARY_DEBUG "${Boost_IOSTREAMS_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_IOSTREAMS_LIBRARY_DEBUG") set(Boost_SERIALIZATION_LIBRARY_RELEASE "${Boost_SERIALIZATION_LIBRARY_RELEASE}" CACHE FILEPATH "Boost_SERIALIZATION_LIBRARY_RELEASE") set(Boost_SERIALIZATION_LIBRARY_DEBUG "${Boost_SERIALIZATION_LIBRARY_DEBUG}" CACHE FILEPATH "Boost_SERIALIZATION_LIBRARY_DEBUG") mark_as_advanced(CLEAR PCL_SHARED_LIBS Boost_INCLUDE_DIR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG Boost_SYSTEM_LIBRARY_RELEASE Boost_SYSTEM_LIBRARY_DEBUG Boost_FILESYSTEM_LIBRARY_RELEASE Boost_FILESYSTEM_LIBRARY_DEBUG Boost_THREAD_LIBRARY_RELEASE Boost_THREAD_LIBRARY_DEBUG Boost_DATE_TIME_LIBRARY_RELEASE Boost_DATE_TIME_LIBRARY_DEBUG Boost_IOSTREAMS_LIBRARY_RELEASE Boost_IOSTREAMS_LIBRARY_DEBUG Boost_SERIALIZATION_LIBRARY_RELEASE Boost_SERIALIZATION_LIBRARY_DEBUG ) endif() if(WIN32) if(NOT DEFINED EIGEN3_ROOT AND DEFINED ENV{EIGEN3_ROOT}) set(EIGEN3_ROOT $ENV{EIGEN3_ROOT} CACHE PATH "EIGEN3_ROOT") endif() if(NOT DEFINED EIGEN_INCLUDE_DIRS) if(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Eigen3/Release/include/Eigen/Core") set(EIGEN_INCLUDE_DIRS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Eigen3/Release/include" CACHE PATH "EIGEN_INCLUDE_DIRS") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Eigen3/include/Eigen/Core") set(EIGEN_INCLUDE_DIRS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Eigen3/include" CACHE PATH "EIGEN_INCLUDE_DIRS") endif() endif() if(EIGEN_INCLUDE_DIRS) include_directories(${EIGEN_INCLUDE_DIRS}) endif() endif() if(WIN32) if(NOT DEFINED FLANN_ROOT AND DEFINED ENV{FLANN_ROOT}) set(FLANN_ROOT $ENV{FLANN_ROOT} CACHE PATH "FLANN_ROOT") endif() if(NOT DEFINED FLANN_INCLUDE_DIR) if(DEFINED FLANN_ROOT AND EXISTS "${FLANN_ROOT}/Release/include") set(FLANN_INCLUDE_DIR "${FLANN_ROOT}/Release/include") elseif(DEFINED FLANN_ROOT AND EXISTS "${FLANN_ROOT}/include") set(FLANN_INCLUDE_DIR "${FLANN_ROOT}/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/FLANN/Release/include") set(FLANN_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/FLANN/Release/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/FLANN/include") set(FLANN_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/FLANN/include") else() set(FLANN_INCLUDE_DIR "") endif() endif() set(FLANN_INCLUDE_DIR "${FLANN_INCLUDE_DIR}" CACHE PATH "FLANN_INCLUDE_DIR" FORCE) mark_as_advanced(CLEAR FLANN_INCLUDE_DIR) if(FLANN_INCLUDE_DIR AND EXISTS "${FLANN_INCLUDE_DIR}") include_directories("${FLANN_INCLUDE_DIR}") endif() find_library(FLANN_LIBRARY_RELEASE NAMES flann_cpp_s flann_cpp flann HINTS "${FLANN_ROOT}/Release/lib" "${FLANN_ROOT}/lib") find_library(FLANN_LIBRARY_DEBUG NAMES flann_cpp_s-gd flann_cpp-gd flann-gd HINTS "${FLANN_ROOT}/Debug/lib" "${FLANN_ROOT}/lib") if(FLANN_LIBRARY_RELEASE) set(FLANN_LIBRARY "${FLANN_LIBRARY_RELEASE}" CACHE FILEPATH "FLANN_LIBRARY") endif() if(FLANN_LIBRARY_DEBUG) set(FLANN_LIBRARY_DEBUG "${FLANN_LIBRARY_DEBUG}" CACHE FILEPATH "FLANN_LIBRARY_DEBUG") endif() endif() if(WIN32) if(NOT DEFINED QHULL_ROOT AND DEFINED ENV{QHULL_ROOT}) set(QHULL_ROOT $ENV{QHULL_ROOT} CACHE PATH "QHULL_ROOT") endif() if(NOT DEFINED QHULL_INCLUDE_DIR) if(DEFINED QHULL_ROOT AND EXISTS "${QHULL_ROOT}/Release/include/qhull/qhull.h") set(QHULL_INCLUDE_DIR "${QHULL_ROOT}/Release/include") elseif(DEFINED QHULL_ROOT AND EXISTS "${QHULL_ROOT}/Release/include/libqhull/qhull.h") set(QHULL_INCLUDE_DIR "${QHULL_ROOT}/Release/include") elseif(DEFINED QHULL_ROOT AND EXISTS "${QHULL_ROOT}/include/qhull/qhull.h") set(QHULL_INCLUDE_DIR "${QHULL_ROOT}/include") elseif(DEFINED QHULL_ROOT AND EXISTS "${QHULL_ROOT}/include/libqhull/qhull.h") set(QHULL_INCLUDE_DIR "${QHULL_ROOT}/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/Release/include/qhull/qhull.h" OR EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/Release/include/libqhull/qhull.h") set(QHULL_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/Release/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/include/qhull/qhull.h" OR EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/include/libqhull/qhull.h") set(QHULL_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/qhull-v7.2.0/include") else() set(QHULL_INCLUDE_DIR "") endif() endif() set(QHULL_INCLUDE_DIR "${QHULL_INCLUDE_DIR}" CACHE PATH "QHULL_INCLUDE_DIR" FORCE) mark_as_advanced(CLEAR QHULL_INCLUDE_DIR) if(QHULL_INCLUDE_DIR AND EXISTS "${QHULL_INCLUDE_DIR}") include_directories("${QHULL_INCLUDE_DIR}") endif() find_library(QHULL_LIBRARY_RELEASE NAMES qhullstatic qhull HINTS "${QHULL_ROOT}/Release/lib" "${QHULL_ROOT}/lib") find_library(QHULL_LIBRARY_DEBUG NAMES qhullstatic_d qhull_d HINTS "${QHULL_ROOT}/Debug/lib" "${QHULL_ROOT}/lib") if(QHULL_LIBRARY_RELEASE) set(QHULL_LIBRARY "${QHULL_LIBRARY_RELEASE}" CACHE FILEPATH "QHULL_LIBRARY") endif() if(QHULL_LIBRARY_DEBUG) set(QHULL_LIBRARY_DEBUG "${QHULL_LIBRARY_DEBUG}" CACHE FILEPATH "QHULL_LIBRARY_DEBUG") endif() endif() if(WIN32) if(NOT DEFINED VTK_DIR AND DEFINED ENV{VTK_DIR}) set(VTK_DIR $ENV{VTK_DIR} CACHE PATH "VTK_DIR") endif() if(NOT DEFINED VTK_DIR AND DEFINED ENV{VTK_BASE_DIR}) if(EXISTS "$ENV{VTK_BASE_DIR}/Release/lib/vtk-5.8") set(VTK_DIR "$ENV{VTK_BASE_DIR}/Release/lib/vtk-5.8" CACHE PATH "VTK_DIR") elseif(EXISTS "$ENV{VTK_BASE_DIR}/Debug/lib/vtk-5.8") set(VTK_DIR "$ENV{VTK_BASE_DIR}/Debug/lib/vtk-5.8" CACHE PATH "VTK_DIR") endif() endif() if(DEFINED ENV{QTDIR}) set(CMAKE_PREFIX_PATH "$ENV{QTDIR}" "$ENV{QTDIR}/lib/cmake" ${CMAKE_PREFIX_PATH}) set(QT_PLUGINS_DIR "$ENV{QTDIR}/plugins" CACHE PATH "QT_PLUGINS_DIR") set(QT_DOC_DIR "$ENV{QTDIR}/doc" CACHE PATH "QT_DOC_DIR") set(QT_IMPORTS_DIR "$ENV{QTDIR}/imports" CACHE PATH "QT_IMPORTS_DIR") set(QT_MKSPECS_DIR "$ENV{QTDIR}/mkspecs" CACHE PATH "QT_MKSPECS_DIR") find_program(QT_MOC_EXECUTABLE NAMES moc PATHS "$ENV{QTDIR}/bin") find_program(QT_LRELEASE_EXECUTABLE NAMES lrelease PATHS "$ENV{QTDIR}/bin") find_program(QT_LUPDATE_EXECUTABLE NAMES lupdate PATHS "$ENV{QTDIR}/bin") find_program(QT_DESIGNER_EXECUTABLE NAMES designer PATHS "$ENV{QTDIR}/bin") find_program(QT_DBUSXML2CPP_EXECUTABLE NAMES qdbusxml2cpp PATHS "$ENV{QTDIR}/bin") find_program(QT_DBUSCPP2XML_EXECUTABLE NAMES qdbuscpp2xml PATHS "$ENV{QTDIR}/bin") find_library(QT_QAXCONTAINER_LIBRARY_RELEASE NAMES QAxContainer PATHS "$ENV{QTDIR}/lib") find_library(QT_QAXCONTAINER_LIBRARY_DEBUG NAMES QAxContainerd PATHS "$ENV{QTDIR}/lib") if(QT_QAXCONTAINER_LIBRARY_RELEASE) set(QT_QAxCONTAINER_LIBRARY "${QT_QAXCONTAINER_LIBRARY_RELEASE}" CACHE FILEPATH "QT_QAxCONTAINER_LIBRARY") endif() if(QT_QAXCONTAINER_LIBRARY_DEBUG) set(QT_QAXCONTAINER_LIBRARY_DEBUG "${QT_QAXCONTAINER_LIBRARY_DEBUG}" CACHE FILEPATH "QT_QAxCONTAINER_LIBRARY_DEBUG") endif() find_library(QT_PHONON_LIBRARY_RELEASE NAMES phonon phonon4 PATHS "$ENV{QTDIR}/lib") find_library(QT_PHONON_LIBRARY_DEBUG NAMES phonond phonon4d PATHS "$ENV{QTDIR}/lib") if(QT_PHONON_LIBRARY_RELEASE) set(QT_PHONON_LIBRARY "${QT_PHONON_LIBRARY_RELEASE}" CACHE FILEPATH "QT_PHONON_LIBRARY") endif() if(QT_PHONON_LIBRARY_DEBUG) set(QT_PHONON_LIBRARY_DEBUG "${QT_PHONON_LIBRARY_DEBUG}" CACHE FILEPATH "QT_PHONON_LIBRARY_DEBUG") endif() find_library(QT_PHONONWIDGETS_LIBRARY_RELEASE NAMES phononwidgets PATHS "$ENV{QTDIR}/lib") find_library(QT_PHONONWIDGETS_LIBRARY_DEBUG NAMES phononwidgetsd PATHS "$ENV{QTDIR}/lib") if(QT_PHONONWIDGETS_LIBRARY_RELEASE) set(QT_PHONONwWIDGETS_LIBRARY "${QT_PHONONWIDGETS_LIBRARY_RELEASE}" CACHE FILEPATH "QT_PHONONwWIDGETS_LIBRARY") set(QT_PHONONWIDGETS_LIBRARY_RELEASE "${QT_PHONONWIDGETS_LIBRARY_RELEASE}" CACHE FILEPATH "QT_PHONONWIDGETS_LIBRARY_RELEASE") endif() if(QT_PHONONWIDGETS_LIBRARY_DEBUG) set(QT_PHONONWIDGETS_LIBRARY_DEBUG "${QT_PHONONWIDGETS_LIBRARY_DEBUG}" CACHE FILEPATH "QT_PHONONWIDGETS_LIBRARY_DEBUG") endif() set(QT_PHONON_INCLUDE_DIR "$ENV{QTDIR}/include/phonon" CACHE PATH "QT_PHONON_INCLUDE_DIR") endif() endif() FIND_PACKAGE(OpenMP) if(OPENMP_FOUND) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() include(${PCL_SOURCE_DIR}/cmake/pcl_find_boost.cmake) find_package(Eigen REQUIRED) include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS}) add_definitions(-DEIGEN_USE_NEW_STDVECTOR -DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET) find_package(Flann REQUIRED) include_directories(SYSTEM ${FLANN_INCLUDE_DIRS}) find_package(OpenNI) find_package(Qhull) include(${PCL_SOURCE_DIR}/cmake/pcl_find_ros.cmake) find_package(Qt4) if (QT4_FOUND) include(${QT_USE_FILE}) endif (QT4_FOUND) find_package(VTK) if(VTK_FOUND) set(VTK_FOUND TRUE) find_package (QVTK) message(STATUS "VTK found (include: ${VTK_INCLUDE_DIRS}, lib: ${VTK_LIBRARY_DIRS})") link_directories(${VTK_LIBRARY_DIRS}) set(HAVE_VTK ON) endif(VTK_FOUND) find_package(MPI) if(MPI_CXX_FOUND) include_directories(SYSTEM ${MPI_INCLUDE_PATH}) endif(MPI_CXX_FOUND) find_package(Doxygen) if(DOXYGEN_FOUND) find_package(HTMLHelp) endif(DOXYGEN_FOUND) set(pcl_config_h_in "${CMAKE_CURRENT_SOURCE_DIR}/pcl_config.h.in") set(pcl_config_h "${CMAKE_CURRENT_BINARY_DIR}/include/pcl/pcl_config.h") configure_file(${pcl_config_h_in} ${pcl_config_h}) PCL_ADD_INCLUDES(common "" ${pcl_config_h}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) include(${PCL_SOURCE_DIR}/cmake/pcl_tests.cmake) include(${PCL_SOURCE_DIR}/cmake/pcl_targets.cmake) collect_subproject_directory_names(${PCL_SOURCE_DIR} "CMakeLists.txt" PCL_MODULES_NAMES PCL_MODULES_DIRS doc) set(PCL_MODULES_NAMES_UNSORTED ${PCL_MODULES_NAMES}) topological_sort(PCL_MODULES_NAMES PCL_ _DEPENDS) message ("Unsorted modules: ${PCL_MODULES_NAMES_UNSORTED}") message ("Modules: ${PCL_MODULES_NAMES}") sort_relative(PCL_MODULES_NAMES_UNSORTED PCL_MODULES_NAMES PCL_MODULES_DIRS) foreach(subdir ${PCL_MODULES_DIRS}) add_subdirectory(${PCL_SOURCE_DIR}/${subdir}) endforeach(subdir) add_subdirectory(doc) include(${PCL_SOURCE_DIR}/cmake/pcl_pclconfig.cmake) include(${PCL_SOURCE_DIR}/cmake/pcl_all_in_one_installer.cmake) include(${PCL_SOURCE_DIR}/cmake/pcl_cpack.cmake) if(CPACK_GENERATOR) message(STATUS "Found CPack generators: ${CPACK_GENERATOR}") PCL_MAKE_CPACK_INPUT() set(CPACK_PROJECT_CONFIG_FILE "${PCL_CPACK_CFG_FILE}") include(CPack) endif(CPACK_GENERATOR) include(${PCL_SOURCE_DIR}/cmake/dep_graph.cmake) MAKE_DEP_GRAPH() PCL_WRITE_STATUS_REPORT() PCL_RESET_MAPS() 现在 Boost_LIBRARY_DIR_DEBUG Boost_LIBRARY_DIR_RELEASE这两个没有显示出来能否帮我修改一下是实现Boost_LIBRARY_DIR_DEBUG Boost_LIBRARY_DIR_RELEASE这两个显示出来
最新发布
12-15
你遇到的问题非常典型:**`Boost_LIBRARY_DIR_DEBUG` 和 `Boost_LIBRARY_DIR_RELEASE` 在 CMake GUI 中不显示出来**,即使你在 CMakeLists.txt 中设置了它们。 --- ## ✅ 问题根源 你的代码中确实已经定义并缓存了这两个变量: ```cmake set(Boost_LIBRARY_DIR_RELEASE "${Boost_LIBRARY_DIR_RELEASE}" CACHE PATH "Boost_LIBRARY_DIR_RELEASE" FORCE) set(Boost_LIBRARY_DIR_DEBUG "${Boost_LIBRARY_DIR_DEBUG}" CACHE PATH "Boost_LIBRARY_DIR_DEBUG" FORCE) ``` 并且也调用了: ```cmake mark_as_advanced(CLEAR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG) ``` ✅ 看似一切正确。 ### ❌ 但真正的问题出在这里: > ⚠️ **后面又执行了一次 `mark_as_advanced(...)` 把它们重新隐藏了!** 我们来看你文件中的这一段(最后部分): ```cmake mark_as_advanced(CLEAR PCL_SHARED_LIBS Boost_INCLUDE_DIR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG Boost_SYSTEM_LIBRARY_RELEASE Boost_SYSTEM_LIBRARY_DEBUG ... ) ``` 这看起来是想“暴露”这些变量,但实际上 —— **CMake 的 `mark_as_advanced(CLEAR ...)` 只有在第一次设置时有效。如果之前或之后有其他地方再次对这些变量调用 `mark_as_advanced()`,就会覆盖 CLEAR 行为。** 更严重的是:**如果你在 `include(...)` 的某个子模块(如 `pcl_targets.cmake` 或 `pcl_find_boost.cmake`)中引入了 `find_package(Boost)`,它会自动调用 `mark_as_advanced()` 隐藏所有 Boost 相关变量!** --- ## ✅ 正确解决方案 ### ✅ 修改目标: 确保 `Boost_LIBRARY_DIR_DEBUG` 和 `Boost_LIBRARY_DIR_RELEASE` **在 CMake GUI 中可见且可编辑** --- ### ✅ 最终修复后的完整修改片段(仅需替换相关部分) 将以下内容替换你原始 `CMakeLists.txt` 文件中从 `if(WIN32)` 开始的 Boost 设置部分(大约第 80 行开始): ```cmake if(WIN32) # === BOOST ROOT === if(NOT DEFINED BOOST_ROOT AND DEFINED ENV{BOOST_ROOT}) set(BOOST_ROOT $ENV{BOOST_ROOT} CACHE PATH "Root directory of Boost installation" FORCE) endif() # Boost include dir if(NOT DEFINED Boost_INCLUDE_DIR) if(DEFINED BOOST_ROOT AND EXISTS "${BOOST_ROOT}/include") set(Boost_INCLUDE_DIR "${BOOST_ROOT}/include") elseif(DEFINED ENV{BOOST_ROOT} AND EXISTS "$ENV{BOOST_ROOT}/include") set(Boost_INCLUDE_DIR "$ENV{BOOST_ROOT}/include") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/include") set(Boost_INCLUDE_DIR "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/include") else() set(Boost_INCLUDE_DIR "") endif() endif() set(Boost_INCLUDE_DIR "${Boost_INCLUDE_DIR}" CACHE PATH "Boost header files" FORCE) mark_as_advanced(CLEAR Boost_INCLUDE_DIR) # 显式暴露给用户 if(Boost_INCLUDE_DIR AND EXISTS "${Boost_INCLUDE_DIR}") include_directories("${Boost_INCLUDE_DIR}") endif() # ---[ 关键修复:Boost library directories (Debug & Release) ] if(NOT DEFINED Boost_LIBRARY_DIR_RELEASE) if(EXISTS "${BOOST_ROOT}/lib/Release") set(Boost_LIBRARY_DIR_RELEASE "${BOOST_ROOT}/lib/Release") elseif(EXISTS "${BOOST_ROOT}/stage/lib") set(Boost_LIBRARY_DIR_RELEASE "${BOOST_ROOT}/stage/lib") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Release") set(Boost_LIBRARY_DIR_RELEASE "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Release") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") set(Boost_LIBRARY_DIR_RELEASE "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") else() set(Boost_LIBRARY_DIR_RELEASE "") endif() endif() if(NOT DEFINED Boost_LIBRARY_DIR_DEBUG) if(EXISTS "${BOOST_ROOT}/lib/Debug") set(Boost_LIBRARY_DIR_DEBUG "${BOOST_ROOT}/lib/Debug") elseif(EXISTS "${BOOST_ROOT}/stage/lib") set(Boost_LIBRARY_DIR_DEBUG "${BOOST_ROOT}/stage/lib") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Debug") set(Boost_LIBRARY_DIR_DEBUG "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib/Debug") elseif(EXISTS "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") set(Boost_LIBRARY_DIR_DEBUG "E:/PointCloudLibrary/VS2008_V90_X64/3rdparty/Boost1.69/lib") else() set(Boost_LIBRARY_DIR_DEBUG "") endif() endif() # ✅ 强制创建缓存变量,并确保可见 set(Boost_LIBRARY_DIR_RELEASE "${Boost_LIBRARY_DIR_RELEASE}" CACHE PATH "Boost release library directory" FORCE) set(Boost_LIBRARY_DIR_DEBUG "${Boost_LIBRARY_DIR_DEBUG}" CACHE PATH "Boost debug library directory" FORCE) # ✅ 关键:清除高级标记 → 让其出现在 CMake GUI mark_as_advanced(CLEAR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG) # 添加链接目录 if(Boost_LIBRARY_DIR_RELEASE AND EXISTS "${Boost_LIBRARY_DIR_RELEASE}") link_directories("${Boost_LIBRARY_DIR_RELEASE}") endif() if(Boost_LIBRARY_DIR_DEBUG AND EXISTS "${Boost_LIBRARY_DIR_DEBUG}") link_directories("${Boost_LIBRARY_DIR_DEBUG}") endif() # 查找各组件库(不需要 CLEAR 所有库,只暴露目录即可) find_library(Boost_SYSTEM_LIBRARY_RELEASE NAMES boost_system boost_system-mt boost_system-vc90-mt boost_system-vc90-mt-1_69 libboost_system-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_SYSTEM_LIBRARY_DEBUG NAMES boost_system-gd boost_system-mt-gd boost_system-vc90-mt-gd boost_system-vc90-mt-gd-1_69 libboost_system-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_FILESYSTEM_LIBRARY_RELEASE NAMES boost_filesystem boost_filesystem-mt boost_filesystem-vc90-mt boost_filesystem-vc90-mt-1_69 libboost_filesystem-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_FILESYSTEM_LIBRARY_DEBUG NAMES boost_filesystem-gd boost_filesystem-mt-gd boost_filesystem-vc90-mt-gd boost_filesystem-vc90-mt-gd-1_69 libboost_filesystem-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_THREAD_LIBRARY_RELEASE NAMES boost_thread boost_thread-mt boost_thread-vc90-mt boost_thread-vc90-mt-1_69 libboost_thread-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_THREAD_LIBRARY_DEBUG NAMES boost_thread-gd boost_thread-mt-gd boost_thread-vc90-mt-gd boost_thread-vc90-mt-gd-1_69 libboost_thread-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_DATE_TIME_LIBRARY_RELEASE NAMES boost_date_time boost_date_time-mt boost_date_time-vc90-mt boost_date_time-vc90-mt-1_69 libboost_date_time-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_DATE_TIME_LIBRARY_DEBUG NAMES boost_date_time-gd boost_date_time-mt-gd boost_date_time-vc90-mt-gd boost_date_time-vc90-mt-gd-1_69 libboost_date_time-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_IOSTREAMS_LIBRARY_RELEASE NAMES boost_iostreams boost_iostreams-mt boost_iostreams-vc90-mt boost_iostreams-vc90-mt-1_69 libboost_iostreams-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_IOSTREAMS_LIBRARY_DEBUG NAMES boost_iostreams-gd boost_iostreams-mt-gd boost_iostreams-vc90-mt-gd boost_iostreams-vc90-mt-gd-1_69 libboost_iostreams-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_SERIALIZATION_LIBRARY_RELEASE NAMES boost_serialization boost_serialization-mt boost_serialization-vc90-mt boost_serialization-vc90-mt-1_69 libboost_serialization-vc90-mt-1_69 HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_SERIALIZATION_LIBRARY_DEBUG NAMES boost_serialization-gd boost_serialization-mt-gd boost_serialization-vc90-mt-gd boost_serialization-vc90-mt-gd-1_69 libboost_serialization-vc90-mt-gd-1_69 HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") find_library(Boost_MPl_LIBRARY_RELEASE NAMES boost_mpi boost_mpi-mt boost_mpi-vc90-mt HINTS "${Boost_LIBRARY_DIR_RELEASE}" "${Boost_LIBRARY_DIR_DEBUG}") find_library(Boost_MPl_LIBRARY_DEBUG NAMES boost_mpi-gd boost_mpi-mt-gd boost_mpi-vc90-mt-gd HINTS "${Boost_LIBRARY_DIR_DEBUG}" "${Boost_LIBRARY_DIR_RELEASE}") # 缓存库文件路径(可选) set(Boost_SYSTEM_LIBRARY_RELEASE "${Boost_SYSTEM_LIBRARY_RELEASE}" CACHE FILEPATH "Boost system library (release)" ) set(Boost_SYSTEM_LIBRARY_DEBUG "${Boost_SYSTEM_LIBRARY_DEBUG}" CACHE FILEPATH "Boost system library (debug)" ) set(Boost_FILESYSTEM_LIBRARY_RELEASE "${Boost_FILESYSTEM_LIBRARY_RELEASE}" CACHE FILEPATH "Boost filesystem library (release)" ) set(Boost_FILESYSTEM_LIBRARY_DEBUG "${Boost_FILESYSTEM_LIBRARY_DEBUG}" CACHE FILEPATH "Boost filesystem library (debug)" ) set(Boost_THREAD_LIBRARY_RELEASE "${Boost_THREAD_LIBRARY_RELEASE}" CACHE FILEPATH "Boost thread library (release)" ) set(Boost_THREAD_LIBRARY_DEBUG "${Boost_THREAD_LIBRARY_DEBUG}" CACHE FILEPATH "Boost thread library (debug)" ) set(Boost_DATE_TIME_LIBRARY_RELEASE "${Boost_DATE_TIME_LIBRARY_RELEASE}" CACHE FILEPATH "Boost date_time library (release)" ) set(Boost_DATE_TIME_LIBRARY_DEBUG "${Boost_DATE_TIME_LIBRARY_DEBUG}" CACHE FILEPATH "Boost date_time library (debug)" ) set(Boost_IOSTREAMS_LIBRARY_RELEASE "${Boost_IOSTREAMS_LIBRARY_RELEASE}" CACHE FILEPATH "Boost iostreams library (release)" ) set(Boost_IOSTREAMS_LIBRARY_DEBUG "${Boost_IOSTREAMS_LIBRARY_DEBUG}" CACHE FILEPATH "Boost iostreams library (debug)" ) set(Boost_SERIALIZATION_LIBRARY_RELEASE "${Boost_SERIALIZATION_LIBRARY_RELEASE}" CACHE FILEPATH "Boost serialization library (release)" ) set(Boost_SERIALIZATION_LIBRARY_DEBUG "${Boost_SERIALIZATION_LIBRARY_DEBUG}" CACHE FILEPATH "Boost serialization library (debug)" ) set(Boost_MPl_LIBRARY_RELEASE "${Boost_MPl_LIBRARY_RELEASE}" CACHE FILEPATH "Boost MPI library (release)" ) set(Boost_MPl_LIBRARY_DEBUG "${Boost_MPl_LIBRARY_DEBUG}" CACHE FILEPATH "Boost MPI library (debug)" ) endif() ``` --- ### 🔥 关键点总结 | 操作 | 原因 | |------|------| | `set(... CACHE PATH ... FORCE)` | 确保变量进入 CMake 缓存 | | `mark_as_advanced(CLEAR var)` | 强制让变量在 GUI 中可见 | | 不要让任何后续脚本调用 `mark_as_advanced(var)` | 否则会被重新隐藏 | | 删除或注释掉你原来的那个大 `mark_as_advanced(CLEAR ...)` 列表 | 它可能被后面的逻辑覆盖 | --- ### ✅ 如何验证是否成功? 1. 删除构建目录下的 `CMakeCache.txt` 2. 运行: ```bash cmake-gui .. ``` 3. 点击 “Configure” 4. 在搜索框输入: - `Boost_LIBRARY_DIR_RELEASE` - `Boost_LIBRARY_DIR_DEBUG` 5. ✅ 如果能看到这两个变量 → 成功! --- ### 🛠️ 额外建议:防止被覆盖 在你调用完所有 `find_package(...)` 后,再加一次: ```cmake # 最后再次确保关键变量可见 mark_as_advanced(CLEAR Boost_LIBRARY_DIR_RELEASE Boost_LIBRARY_DIR_DEBUG) ``` 这样可以防止 `pcl_find_boost.cmake` 等内部脚本偷偷隐藏它们。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值