小编sen*_*enx的帖子

是否有任何首选项链接器给静态符号或动态符号?

我有两个标题和两个cpp文件:

//f1.h
int f1();

//f1.cpp
include "f1.h"
int f1() {return 1;}

//f2.h
int f2();

//f2.cpp
#include "f2.h"
#include "f1.h"
int f2() {return f1() + 1;}

//main.cpp
#include "f2.h"
int main() {return f2();}
Run Code Online (Sandbox Code Playgroud)

首先,我从f1和编译共享对象,并根据该共享对象f2创建二进制文件main.cpp:

g++ -c -fPIC -shared f1.cpp f2.cpp
g++ -shared -fPIC -o libf.so f2.o f1.o
g++ -o dynamic main.cpp libf.so
Run Code Online (Sandbox Code Playgroud)

现在我介绍一些更改f1.cpp(比如f1现在返回2):

//f1.cpp#
include "f1.h"
int f1() {return 2;}
Run Code Online (Sandbox Code Playgroud)

并编译二进制文件如下:

g++ -o semistatic main.cpp f1.cpp libf.so
Run Code Online (Sandbox Code Playgroud)

问题是'半静态'二进制是否会使用f1() …

c++ linker static dynamic shared-libraries

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

Apache Proxying导致ERR_CONTENT_DECODING_FAILED错误

我正在尝试从Apache Web服务器(A)配置反向代理到不同机器(B)上的另一个Apache Web服务器.

通过我目前正在使用的配置,我能够访问位于服务器B上的网页,就像它在服务器A上一样,但是对某些资产的请求经常导致ERR_CONTENT_DECODING_FAILED(至少在chrome中).当我使用简单的重定向而不是代理时,这不会发生.

我浏览了请求和响应标题,似乎文件传输的一切都很顺利:

请求:

GET /app1/assets/css/vendor.min.css?1470017050 HTTP/1.1
Host: some.host.address
...
Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate, sdch
Run Code Online (Sandbox Code Playgroud)

响应:

HTTP/1.1 200 OK
...
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/css;charset=utf-8
Connection: Keep-Alive
Transfer-Encoding: chunked
Run Code Online (Sandbox Code Playgroud)

我在服务器A上使用了以下配置:

ProxyPreserveHost on
ProxyPass "/app1/" "http://some.host.address:8080/app1/"
ProxyPassReverse "/app1/" "some.host.address:8080/app1/"
ProxyHTMLURLMap "http://some.host.address:8080" "/app1"

<Location /app1/>
        ProxyPassReverse /app1/
        ProxyHTMLEnable On
        ProxyHTMLURLMap / /app1/
</Location>
Run Code Online (Sandbox Code Playgroud)

apache configuration assets reverse-proxy decoding

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

如何确定架构以构建 GCC 交叉编译器?

我正在尝试在 Linux 上设置一个构建服务器,我将用它来构建适用于 Windows 和 Mac 的 C/C++ 应用程序。我知道 GCC 支持多种不同的体系结构,但我不知道如何确定构建 GCC 交叉编译器所需的目标。

有人可以向我解释一下吗?

提前致谢。

PS 我知道预编译的解决方案已经存在,但我只想通过深入了解来详细了解这一点。

c++ gcc gnu cross-compiling binutils

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

如何根据C++中可变大小的模板模板列表获取元组?

我创建了一个模板类,它接受两个普通的模板参数(如int或double),并从中派生了几个其他类:

template <typename A, typename B>
class IClassBase {...}

template <typename B>
class Derived1Class : public IClassBase<std::string, B> {...}

template <typename B>
class Derived2Class : public IClassBase<std::string, B> {...}
Run Code Online (Sandbox Code Playgroud)

我需要设计一个结构,允许编译器根据模板类型及其参数列表构建一个std :: tuple(上面代码片段中的B类型).

所以给出下面的列表

Derived1Class<int>, Derived1Class<double>, Derived2Class<bool>, Derived2Class<std::string>
Run Code Online (Sandbox Code Playgroud)

编译器应该推断出以下元组:

std::tuple<int, double, bool, std::string>
Run Code Online (Sandbox Code Playgroud)

这是否可能,如果是这样,如何在C++中完成?

提前致谢)

c++ stl tuples generic-programming variadic-templates

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

在 QML 中访问委托内的模型数据

有没有办法modelData从视图委托(特别是中继器)访问。

我尝试使用单独的属性并尝试通过它访问它,model.modelData但这都不起作用。

请参阅下面的代码快照。

提前致谢。

Component
{
    id: comp_1
    Rectangle
    {
        color: "green"
        width: 200
        height: 200
    }
}

Component
{
    id: comp_2
    Rectangle
    {
        color: "red"
        width: 200
        height: 200

        Text
        {
            anchors.fill: parent
            text: modelData
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
        }
    }
}

function getDelegate(itemName)
{
    if(itemName === "comp1")
        return comp_1;
    else
        return comp_2;
}

Row
{
    Repeater
    {
        id: repeat
        model: ["comp1", "comp2"]
        Loader
        {
            sourceComponent: getDelegate(modelData)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

qt repeater model view qml

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