0

这是一个关于性能的问题,我为此苦苦挣扎了一段时间,而我的 google-fu 并没有帮助我找到修复它的方法。

我正在为嵌入式项目交叉编译应用程序。代码所在的微处理器的内存被分成两半,我可以决定从 address_0 或 addres_max/2 运行软件。

目前我有一个静态库,它链接到 main 两次。

add_executable(mytarget_0 main.c)
target_link_libraries(mytarget_0 ${extralib})
set_target_properties(mytarget_0 PROPERTIES LINK_FLAGS ${CMAKE_EXE_LINKER_FLAGS_LOW} )

和一个完全相同的链接到另一个区域。

add_executable(mytarget_1 main.c)
target_link_libraries(mytarget_1 ${extralib})
set_target_properties(mytarget_1 PROPERTIES LINK_FLAGS ${CMAKE_EXE_LINKER_FLAGS_MID} )

基本上 main 的编译执行了两次,链接执行了两次,参数不同。

我为很多目标复制了这个操作,基本上我想清理代码以缩短编译时间。

我现在的问题是2:

  • 有人知道如何在不编译的情况下重新定位代码吗?我阅读了关于 srecord 的信息,但我不确定是否可以将其用于此目的。
  • 有人知道如何在不创建另一个目标的情况下更改 cmake 中的链接标志吗?
4

0 回答 0