小编rob*_*r78的帖子

为什么clang仍然需要libgcc.a来编译我的代码?

int main(int argc, char **argv)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我交叉编译(host = linux x86_64,target = linux aarch64)

/path/to/clang --target=aarch64-linux-gnu -v main.cpp -o main -fuse-ld=lld -L./libs -lc -lc_nonshared -Xlinker -Map=a.map

在-L./libs文件夹中,我放置了目标中的所有依赖项.当我排除libgcc.a时,会发生此链接器错误

ld.lld: error: unable to find library -lgcc

我添加了-Map选项以获取有关链接静态库的信息.在地图文件中,我看不到对libgcc.a的引用...但我正在努力阅读地图文件.有很多线条<internal>.不确定那是什么.请参见底部的a.map

问题

  1. 为什么这样一个简单的程序仍然需要libgcc.a?我读了12,我看了3.
  2. 是否
    • (a)链接器要求libgcc进行自己的链接工作,或者
    • (b)链接器是否使用libgcc,因为我的代码需要libgcc提供的东西
    • 我认为这是(b),但我只想确定.

一张地图

     VMA              LMA     Size Align Out     In      Symbol
   10270            10270       1b     1 .interp
   10270            10270       1b     1         <internal>:(.interp)
   10290            10290       a8     8 .dynsym
   10290            10290       a8     8         <internal>:(.dynsym)
   10338 …
Run Code Online (Sandbox Code Playgroud)

c++ linux gcc llvm clang

12
推荐指数
2
解决办法
1425
查看次数

Scala Future.fallbackTo有什么用?

鉴于此代码

val f1: Future[Int] = Future { 5 } //Future.failed(new Exception("sorry"))
val f2: Future[Int] = Future { 6 }

val result : Future[Int] = f1.fallbackTo {
  println("Fall back to that F")
  f2
}
Run Code Online (Sandbox Code Playgroud)

结果包含f1的结果.但是,无论f1是否失败,都会执行fallbackTo块中的代码.我期待只有在f1失败时才会执行fallbackTo块.

也许我的例子太简单(或者只是错误),但是fallbackTo的用途是什么?

scala future

11
推荐指数
1
解决办法
2677
查看次数

如何使用 Bootstrap Flex 设置 CSS3 flex-basis 属性?

使用 CSS3 我可以像这样单独设置 flex 属性

.someclass {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: auto;   
}
Run Code Online (Sandbox Code Playgroud)

使用 Bootstrap (version >= 4.1) flex 似乎我只能设置flex-grow-X 和 flex-shrink-X,就像这样

<div class="someclass flex-grow-1 flex-shrink-1">...</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 bootstrap 4.1 设置 flex-basis?

html css flexbox

11
推荐指数
1
解决办法
6097
查看次数

如何使用LLVM在Windows上为ARM编译C++程序?

目标仅使用LLVM在Windows上为ARM编译C++程序.

为什么 LLVM因为许可许可.

我开始怀疑我对LLVM的理解是否正确.

在主机上做

  1. 使用clang(前端)生成中间表示.该表示是独立于目标的.
  2. 使用llc(后端)生成目标汇编代码.
  3. 使用lld-link.exe生成可执行文件.

然后在目标机器上执行.

主机 Windows 10,64bit

目标机器用手臂皮质-57打开PX

该程序

int main(int argc, char* argv[]) 
{
    int x=41;
    x++;
    return x;
}
Run Code Online (Sandbox Code Playgroud)

我已经检查并编译了LLVM(使用Visual Studio 2015,发布版本,CPU = x64)

我的尝试

clang.exe -target arm -march=armv8-a -mcpu=cortex-a57 -mfloat-abi=hard  -emit-llvm -c -o main.bc  main.cpp
llc.exe -march=arm -mcpu=cortex-a57 -mattr=a57,armv8-a,v8 -meabi=gnu -o main.s main.bc
lld-link.exe /entry:main /machine:arm main.s
Run Code Online (Sandbox Code Playgroud)

错误

lld-link.exe: error: main.s: unknown file type
Run Code Online (Sandbox Code Playgroud)

然后我尝试在Windows上执行前端步骤,在arm机器上执行后端操作.

clang.exe -target arm -march=armv8-a -mcpu=cortex-a57 -mfloat-abi=hard  -emit-llvm -c -o main.bc  main.cpp
llc.exe -march=arm -mcpu=cortex-a57 -mattr=a57,armv8-a,v8 …
Run Code Online (Sandbox Code Playgroud)

c++ arm cross-compiling arm64

9
推荐指数
1
解决办法
2677
查看次数

如何避免msbuild发布引用的项目?

我有一个包含 3 个项目的 Visual Studio 2013 解决方案(称为 Twins):

  1. 类库(Lib)
  2. WCF 服务应用程序 (WCF)
  3. ASP .NET MVC 应用程序(站点)

参考

  • 站点引用 WCF 和 Lib。
  • WCF 参考库。

我正在尝试使用 msbuild 从命令行构建和发布(WebPublishMethod = FileSystem) 站点和 WCF。

这适用于 WCF 项目(为了清楚起见,分为多行):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe 
.\Twins.sln /t:Wcf
/p:"VisualStudioVersion=12.0;PublishProfile=wcfprofile;DeployOnBuild=true" 
Run Code Online (Sandbox Code Playgroud)

这对于站点项目失败:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
.\Twins.sln /t:Site
/p:"VisualStudioVersion=12.0;PublishProfile=siteprofile;DeployOnBuild=true" 
Run Code Online (Sandbox Code Playgroud)

简短的错误消息

The value for PublishProfile is set to 'siteprofile', 
expected to find the file at
\Twins\Wcf\Properties\PublishProfiles\siteprofile.pubxml'
but it could not be found.
Run Code Online (Sandbox Code Playgroud)

详细错误信息

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4331,5):
error : 
The value for PublishProfile is set to 'siteprofile', 
expected …
Run Code Online (Sandbox Code Playgroud)

msbuild visual-studio

5
推荐指数
0
解决办法
540
查看次数

如何使WPF窗口标题的文本长度大于255个字符?

在VS2015中创建了WPF应用程序。将窗口的标题设置为长度为290的字符串。

Title = "123456789 223456789 323456789 423456789 523456789 623456789 723456789 823456789 923456789 133456789 233456789 333456789 433456789 533456789 633456789 733456789 833456789 933456789 143456789 243456789 343456789 443456789 543456789 643456789 743456789 843456789 943456789 153456789 253456789 ";

运行该应用程序时,标题将被截断为255个字符(最大化的窗口和扩展到2个屏幕的窗口)。

拉伸窗

  1. 如何增加显示的字符数?
  2. WPF窗口标题允许的最大长度是多少?

我试过了

c# windows wpf xaml

5
推荐指数
1
解决办法
403
查看次数

Microsoft IServiceCollection.Add(new ServiceDescriptor(...)) 的有用文档在哪里?

我正在开发一个现有的 WebAPI 项目及其内部

\n\n
public void ConfigureServices(IServiceCollection services)\n
Run Code Online (Sandbox Code Playgroud)\n\n

IoC 容器的设置如下

\n\n
services.Add(new ServiceDescriptor(typeof(ISQLConnectionFactory), new SQLConnectionFactory(GetConnectionString("DefaultConnection"))));\n
Run Code Online (Sandbox Code Playgroud)\n\n

(还有很多 services.AddScoped 我没有询问)

\n\n

问题

\n\n
    \n
  1. 我在哪里可以找到 Microsoft 的文档来解释“IServiceCollection.Add(new ServiceDescriptor ...”背后的概念(太少了)
  2. \n
\n\n

或者也许有人可以提供一些见解

\n\n
    \n
  1. \xe2\x80\x9eservices.Add(new ServiceDescriptor ...\xe2\x80\x9c 做什​​么?
  2. \n
  3. 什么是服务描述符?
  4. \n
  5. 通过调试代码,我发现 SQLConnectionFactory 仅实例化一次。调用“services.Add”(总是)是否创建一个单例对象?如果是这样,与 services.AddSingleton 有什么区别?
  6. \n
\n

c# inversion-of-control asp.net-core-webapi

5
推荐指数
1
解决办法
2352
查看次数

C++隐式默认构造函数有什么意义?

隐式默认构造函数具有空主体和空初始化列表(原始类型未定义,并且为用户定义的类型调用默认构造函数).

这篇帖子

MyClass *c = new MyClass();
Run Code Online (Sandbox Code Playgroud)

确实做了一个成员方面的值初始化,但是在做什么时调用默认构造函数是什么意思

MyClass c;
Run Code Online (Sandbox Code Playgroud)

是否调用了隐式默认构造函数,以确保调用用户定义类型(可能具有非平凡的默认构造函数)的默认构造函数?


更新

似乎在调用编译器生成的隐式默认构造函数之后,可能无法一致地实例化对象,即原始类型未定义,并且用户定义的类型可能(或可能不)处于已知状态,具体取决于程序员是否提供了默认构造函数.

那么为什么编译器会生成一个隐式的默认构造函数,当调用它时可能会实例化一个未知状态的对象?

c++ constructor

3
推荐指数
1
解决办法
673
查看次数

如何在Haskell中比较自定义数据类型

我有一个自定义数据类型,我想比较一下。

data Tile = Wall | Ground | Storage | Box | Blank
Run Code Online (Sandbox Code Playgroud)

我想要做 instance-of-tile == Box

我试过==像这样

tileToInteger :: Tile -> Integer
tileToInteger tile 
  | tile == Blank || tile == Wall = 1
  | otherwise = 2
Run Code Online (Sandbox Code Playgroud)

我也尝试过

tileToInteger :: Eq => Tile -> Integer
Run Code Online (Sandbox Code Playgroud)

来自的错误消息stack build

No instance for (Eq Tile) arising from a use of ‘==’
    • In the first argument of ‘(||)’, namely ‘tile == Blank’
      In the expression: tile == …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
97
查看次数

为什么静态构造函数中的异常包含在TypeInitializationException中

静态构造函数的异常包含在TypeInitializationException中.考虑下面的例子

using System;
namespace ConsoleApp
{
class Program
{
    static void Main(string[] args)
    {
        try
        {
            new MyClass();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.GetType().ToString());
        }
    }

    public class MyClass
    {
        static MyClass()
        {
            throw new Exception();
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

该程序的输出是

System.TypeInitializationException
Run Code Online (Sandbox Code Playgroud)
  1. 在TypeInitializationException中包装异常的原因是什么?
  2. 为什么没有返回原始异常?

c# static

2
推荐指数
1
解决办法
411
查看次数

如何在Javascript中删除字符串中的所有非数字字符(不包括减号、点和逗号)?

数字字符是

0 1 2 3 4 5 6 7 8 9 dot comma minus at the start of the string

我需要从字符串中删除所有非数字字符。这里的例子

123 -> 123

123.45 -> 123.45

123,45 -> 123,45

-123 -> -123

-123.45 -> -123.45

-123,45 -> -123,45

--123.45 -> -123.45

--123,45 -> -123,45


a -> empty string

-a -> -

a123 -> 123

-a123 -> -123

a123.45 -> 123.45

-a123.45 -> -123.45

a123.b45 -> 123.45

-a123.b45 -> -123.45

123.-34 -> 123.34

-123.-34 -> -123.34

--123.-34 -> -123.34
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的 …

javascript regex replace

2
推荐指数
1
解决办法
5920
查看次数

为什么 MSAL loginPopup 响应“应用程序客户端请求资源上不存在的范围”?

(问题的继续:为什么我的 SPA 正在使用 Azure Active Directory 调用我的 WebAPI,收到“此请求的授权已被拒绝。”?

我的客户端 SPA 正在尝试调用受保护的 WebAPI(服务)。客户端使用 MSAL(Micosoft 身份验证库)。问题发生在调用 API 之前,即在下图中的 1 和 2 之间。

在此处输入图片说明

这是客户

<!DOCTYPE html>
<html>
<head>
    <title>Quickstart for MSAL JS</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js"></script>
    <script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.2/js/msal.js"></script>
</head>
<body>
    <div class="container">
        <div>
            <button id="GetTodos" onclick="getTodos()">Get Todos</button>
        </div>
    </div>
    <script>

        var msalConfig = {
            auth: {
                clientId: 'xxxxxxxxxxxxxxxxxxxxxxx2427', 
                authority: "https://login.microsoftonline.com/my.tenant"
            },
            cache: {
                cacheLocation: "sessionStorage",
                storeAuthStateInCookie: true
            }
        };


        var requestObj = {
            // scopes: ["user.read"]
            scopes: ["access_as_user"]
        };

        var myMSALObj = new …
Run Code Online (Sandbox Code Playgroud)

azure access-token single-page-application azure-active-directory azure-ad-msal

1
推荐指数
1
解决办法
2368
查看次数