GVKun编程网logo

箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建

9

对于想了解箭头镶木地板的非法指令信号如何在没有AVX2的情况下使用Conan进行构建的读者,本文将是一篇不可错过的文章,并且为您提供关于bash–如何在没有用户交互的情况下使用APT安装软件包?、io

对于想了解箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建的读者,本文将是一篇不可错过的文章,并且为您提供关于bash – 如何在没有用户交互的情况下使用APT安装软件包?、ios – 如何在没有Amazon Cognito的情况下使用AWS S3?、ios – 如何在没有干净构建的情况下创建XCode存档、java – 如何在没有正则表达式的情况下进行拆分的有价值信息。

本文目录一览:

箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建

箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建

如何解决箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建?

我正在使用 conan 构建一个使用箭头镶木地板的库。我自己制作了箭头,因为我在柯南中心找不到包含镶木地板的版本:

在我的 conanfile.txt 中

[options]
arrow:shared=True  # I tried both shared and static
arrow:parquet=True
arrow:with_snappy=True
conan install .. --build=arrow

它在我的机器上正确构建和执行,但在 Jenkins 服务器中的测试失败

 SIGILL - Illegal instruction signal

从 this 和 this 帖子来看,似乎存在架构冲突。确实存在差异:

詹金斯服务器

AVX supported
AVX2 not supported

我的电脑

AVX supported
AVX2 supported

此外,箭头代码优化到了 avx 级别。例如,在 byte_stream_split.h 中:

#if defined(ARROW_HAVE_AVX2)
template <typename T>
void ByteStreamSplitDecodeAvx2(const uint8_t* data,int64_t num_values,int64_t stride,T* out)
// Code

既然我没有添加对 AVX2 的支持,我如何告诉柯南在没有 AVX2 支持的情况下构建箭头,或者任何最低通用配置可能是什么?

或者有什么我应该看的完全不同的东西吗?

解决方法

在箭头中,使用的 SIMD 指令的级别由这些 cmake options

控制
  define_option_string(ARROW_SIMD_LEVEL
                       "Compile-time SIMD optimization level"
                       "SSE4_2" # default to SSE4.2
                       "NONE"
                       "SSE4_2"
                       "AVX2"
                       "AVX512")

  define_option_string(ARROW_RUNTIME_SIMD_LEVEL
                       "Max runtime SIMD optimization level"
                       "MAX" # default to max supported by compiler
                       "NONE"
                       "SSE4_2"
                       "AVX2"
                       "AVX512"
                       "MAX")

此选项用于here,检查是否传入预处理器定义

  if(CXX_SUPPORTS_AVX2 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES "^(AVX2|AVX512|MAX)$")
    set(ARROW_HAVE_RUNTIME_AVX2 ON)
    add_definitions(-DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_BMI2)
  endif()

您可以在运行 cmake 时通过 cmake 生成器指定此 cmake 选项 ARROW_SIMD_LEVELARROW_RUNTIME_SIMD_LEVEL。如果这不起作用,则意味着箭头尚不支持通过 conan 将其作为 cmake 配置,因此您可能需要更改构建流程才能手动运行 cmake

bash – 如何在没有用户交互的情况下使用APT安装软件包?

bash – 如何在没有用户交互的情况下使用APT安装软件包?

我有一个脚本,可以在Debian squeeze中下载并替换内核头文件.
function fixHeaders(){
    #Replace the kernel headers from OVH with standard kernel headers...
    aptitude -y install linux-image-2.6.32-5-amd64  
    sed s/'GRUB_DEFAULT=0'/'GRUB_DEFAULT=1'/g
    update-grub
    echo "Rebooting the machine. Run this script again after reboot and choose option 2."
    sleep 1
    reboot  
}

我遇到的问题是,在aptitude下载软件包后,它会将脚本抛入文本gui并向用户询问一堆问题.有没有办法跳过这个或在适当的时间发送标签/输入为所有答案选择“确定”?

基于Daniel t的评论,我能够用DEBIAN_FRONTEND = noninteractive来做到这一点
DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get install -y -q --force-yes linux-image-2.6.32-5-amd64

ios – 如何在没有Amazon Cognito的情况下使用AWS S3?

ios – 如何在没有Amazon Cognito的情况下使用AWS S3?

我使用Node.js REST API来验证我的用户.一旦他们通过身份验证,我就允许他们发布带有文字的照片.我的计划是将文本和URL存储到数据库中的照片中.这样当他们转到帖子的源时,我的应用程序将查询数据库以获取文本和URL,然后使用所有URL直接从S3获取图像.这是正确的方法,如果是这样的话,如果不使用cognito,我怎么也不能这样做.我试图削减成本,因为我已经使用我的API添加身份验证,因此认知似乎没用.

这是我到目前为止的代码.

let S3BucketName = "*******"

    // configure authentication with Cognito
    let CognitoPoolID = "*************"
    let Region = AWSRegionType.USEast1
    let credentialsProvider = AWSCognitoCredentialsProvider(regionType:Region,identityPoolId:CognitoPoolID)
    let configuration = AWSServiceConfiguration(region:Region,credentialsProvider:credentialsProvider)
    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

    let ext = "png"
    let imageURL = NSBundle.mainBundle().URLForResource("iimage",withExtension: ext)!

    let uploadRequest = awss3transfermanagerUploadRequest()
    uploadRequest.body = imageURL
    uploadRequest.key = nsprocessInfo.processInfo().globallyUniqueString + "." + ext
    uploadRequest.bucket = S3BucketName
    uploadRequest.contentType = "image/" + ext

    let transferManager = awss3transfermanager.defaultS3TransferManager()
    transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
        if let error = task.error {
            print("Upload Failed (\(error))")
        }
        if let exception = task.exception {
            print("Upload Failed (\(exception))")
        }
        if task.result != nil {
            let s3URL = NSURL(string: "http://s3.amazonaws.com/\(S3BucketName)/\(uploadRequest.key!)")!
            print("Uploaded to:\n\(s3URL)")
        }
        else {
            print("Unexpected empty result.")
        }
        return nil
    }

解决方法

因为没有认知使用这个

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    AWsstaticCredentialsProvider *credentialsProvider = [[AWsstaticCredentialsProvider alloc] initWithAccessKey:AWS_ACCESS_KEY secretKey:AWS_SECRET_KEY];

    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPSoutheast1
                                                                     credentialsProvider:credentialsProvider];

    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
}

并用于上传图像使用

awss3transfermanager *transferManager = [awss3transfermanager defaultS3TransferManager];

awss3transfermanagerUploadRequest *uploadRequest = [awss3transfermanagerUploadRequest new];
uploadRequest.bucket = AWS_S3_BUCKET_NAME;
uploadRequest.key = @"cards/image.png";
uploadRequest.contentType = @"image/png";
uploadRequest.body = imageURL;

[[transferManager upload:uploadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor]
                                                   withBlock:^id(AWSTask *task) {
                                                       if (task.error) {
                                                           if ([task.error.domain isEqualToString:awss3transfermanagerErrorDomain]) {
                                                               switch (task.error.code)
                                                               {
                                                                   case awss3transfermanagerErrorCancelled:
                                                                   case awss3transfermanagerErrorPaused:
                                                                       break;

                                                                   default:
                                                                       NSLog(@"Error: %@",task.error);
                                                                       break;
                                                               }
                                                           }
                                                           else
                                                           {
                                                               // UnkNown error.
                                                               NSLog(@"Error: %@",task.error);
                                                           }
                                                       }

                                                       if (task.result)
                                                       {
                                                           awss3transfermanagerUploadOutput *uploadOutput = task.result;
                                                            NSLog(@"success: %@",uploadOutput);
                                                       }
                                                       return nil;
                                                   }];

ios – 如何在没有干净构建的情况下创建XCode存档

ios – 如何在没有干净构建的情况下创建XCode存档

我们有一个相当大的代码库,需要很长时间来清理构建.每当我们归档构建(Product-> Archive)时,归档过程首先清除所有,然后构建.

这似乎是不必要和耗时的,我们希望能够在没有干净构建的情况下创建存档.增量构建应该没问题.

有人知道如何在XCode存档过程中禁用“全部清除”步骤吗?非常感谢,我对此的搜索只提出了如何更快地构建构建的建议(这对我们来说没有用处).

解决方法

对的,这是可能的.

我怀疑是这种情况,可以从命令行完成.我们花了一段时间才弄明白这一点.以下是我们的TeamCity构建脚本的摘录.基本上你生成一个构建(clean或incremental是你的选择),然后从构建生成和.ipa.这是一个选项(当然删除了开发人员身份和提供配置文件ID):

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

xcodebuild -project <PROJECT NAME>.xcodeproj -target <PROJECT NAME> -configuration Release -sdk iphoneos -arch armv7 ONLY_ACTIVE_ARCH=NO CONTRIB_PATH=%system.agent.home.dir%/Contrib2 CODE_SIGN_IDENTITY="iPhone Developer: <DEV NAME> (ID)"  
PROVISIONING_PROFILE=<PROFILE ID>

rm -rf Payload
mkdir Payload

cp -R build/Release-iphoneos/ Payload/

rm ~/<PROJECT NAME>.ipa
xcrun -sdk iphoneos PackageApplication -v Payload/<PROJECT NAME>.app -o ~/<PROJECT NAME>.ipa --sign "iPhone Developer: <DEV NAME> (ID)" --embed ~/Library/MobileDevice/Provisioning\ Profiles/<PROFILE ID>.mobileprovision

java – 如何在没有正则表达式的情况下进行拆分

java – 如何在没有正则表达式的情况下进行拆分

在我的 Java应用程序中,我需要在两种情况下使用相同的“目标”找到索引和拆分字符串.目标只是一个点.

查找索引(通过indexOf和lastIndexOf)不使用正则表达式,所以

String target = ".";
String someString = "123.456";
int index = someString.indexOf(target); // index == 3

给了我需要的索引.

但是,我也想用这个“目标”来分割一些字符串.但现在目标字符串被解释为正则表达式字符串.所以当我想拆分字符串时,我不能像以前一样使用相同的目标字符串…

String target = ".";
String someString = "123.456";
String[] someStringSplit = someString.split(target); // someStringSplit is an empty array

所以我需要以下任何一种:

>通过非正则表达式目标拆分为数组的方法
>将非正则表达式目标字符串“转换”为正则表达式字符串的方法

有人可以帮忙吗?您是否同意标准java平台使用正则表达式进行“拆分”而不使用正则表达式“indexOf”似乎有点奇怪?

解决方法

您需要逃避“目标”才能将其用作正则表达式.
尝试
String[] someStringSplit = someString.split(Pattern.quote(target));

如果有帮助,请告诉我.

今天关于箭头镶木地板的非法指令信号如何在没有 AVX2 的情况下使用 Conan 进行构建的分享就到这里,希望大家有所收获,若想了解更多关于bash – 如何在没有用户交互的情况下使用APT安装软件包?、ios – 如何在没有Amazon Cognito的情况下使用AWS S3?、ios – 如何在没有干净构建的情况下创建XCode存档、java – 如何在没有正则表达式的情况下进行拆分等相关知识,可以在本站进行查询。

本文标签: