小编CpC*_*d0y的帖子

使用GCC的链接时优化与静态链接库

我正在尝试使用-fltoGCC(6.1.1)标志的链接时优化.

虽然它正常工作与我的代码,它不使用静态链接库,我也建,并与我的项目链接(该链接引擎和库是GLSL的优化,仅供参考).

这是输出:

...
/usr/bin/ranlib: ir_expression_flattening.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_function_inlining.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_copy_propagation_elements.cpp.o: plugin needed to handle lto object
...
Run Code Online (Sandbox Code Playgroud)

在那之后,当然,我得到一些函数的几个"未定义的引用".

我做了一些研究,发现它可能是因为ar我应该尝试使用gcc-ar,但我不确定我该怎么做.

另外,我正在使用不支持lto的CMake(除了某些平台上的intel编译器,所以我读了......).尽管如此,我尝试使用:

set_property(TARGET glsl_optimizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
Run Code Online (Sandbox Code Playgroud)

哪个没用.

此外,我尝试了GCC的-fuse-linker-plugin旗帜,但没有奏效.

我想我将不得不手动使用旧的方式直接使用gcc-ar,或者可能还有其他一些方法?

gcc cmake lto

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

CMake:连续两次编译程序

为了能够进行许多自动优化,我希望能够-fprofile-generate首先使用标志编译我的程序,然后运行它以生成配置文件,然后重新编译程序-fprofile-use

这意味着我想连续编译我的程序两次,CMAKE_CXX_FLAGS每次编译两次。

我怎样才能使用 CMake 做到这一点?

compilation g++ cmake

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

如何在不丢失现有数据的情况下调整std :: vector的大小?

我正在实现一种算法,需要我在循环的每次迭代中从向量中移除和添加相同的元素.

例:

迭代1:| 1 2 3 4 | (4号)

迭代2:| 1 3 | 2 4(大小2,元素'2'和'4'仍在内存中,但没有考虑到矢量的大小)

迭代3:| 1 2 3 | 4(尺寸3,元素'4'仍在那里)

基本上,我希望能够更改size()函数返回的值,而不会出于性能原因影响向量.

我知道我可以使用我的向量之外的另一个变量来跟踪它的大小,但我想知道它是否可以直接在std :: vector容器中内部.

谢谢你的帮助.

c++ vector c++11

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

实现Battlefield 3的std :: vector交换技巧来"删除/添加"一个元素

我想实现一个算法,我偶然发现了描述DICE的"交换技巧" 这里(幻灯片19).

根据我的理解,我们首先创建一个包含所有元素的向量,然后当需要删除一个元素时,它与最后一个元素交换,我们减少向量的"大小".这个"大小"是一个外部变量来跟踪我们的"虚拟"大小(因为向量在内部不支持它).

注意:订购/分拣并不重要.此外,当我说"删除"时,没有任何内容被解除分配,只是说该元素被移动到"可用"范围之外.

现在,当需要在向量的可用部分中添加一个元素(来自已删除的元素)时,我们需要将其交换回某处.这就是我阻止的地方.因为,当我们交换它时,我们可以使用在此迭代中需要存在的元素交换它,并且需要交换相同的元素,依此类推......

这是一个如何工作的例子:

迭代1:| 1 2 3 4 | (4号)

迭代2:| 1 3 | 2 4(大小2,元素'2'和'4'仍在内存中,但没有考虑到矢量的大小)

迭代3:| 2 1 3 | 4(尺寸3,元素'4'仍在那里)

我可能会过度思考它,但如果有人知道如何正确地使用这个算法,那将会有所帮助.

谢谢你的帮助.

c++ algorithm vector c++11

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

在 C++ 中测量 std::system 的实际执行时间

是否可以测量std::system(...)执行时间?

或者函数可能立即返回并且这是不可能的,在这种情况下还有其他方法来测量分叉程序的执行情况吗?

谢谢你的帮助。

c++ performance time stl

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

标签 统计

c++ ×3

c++11 ×2

cmake ×2

vector ×2

algorithm ×1

compilation ×1

g++ ×1

gcc ×1

lto ×1

performance ×1

stl ×1

time ×1