我尝试将PROFILE
添加到CMAKE_BUILD_TYPES
。为此,我需要在工具链文件的-finstrument-functions
中添加CMAKE_CXX_FLAGS
,并通过target_link_libraries
将所属库与CMakeLists.txt中的绝对路径链接。到目前为止,一切都很好,没有问题。
但是在刷新buildinformations时,cmake会检查编译器stil是否起作用。由于缺少所需的库,现在“无法编译简单的测试程序”,该库稍后在CMakeLists中链接。
因此,我评论了-finstrument-functions
标志,并且可以编译testprogramm。
我试图: -使用-L -l将librarie和path设置为CXX标志的一部分:
使用link_directories(<dir>)
命令以及SET(CMAKE_LINK_DIRECTORIES_BEFORE <Path> )
和SET(CMAKE_LIBRARY_PATH <Path>)
在工具链文件中设置变量,并稍后在cmakelist中调用它们:
SET(ADDITIONAL_PROFILE_LIBRARY "$ENV{QNX_BASE}/target/qnx7/armle-v7/usr/liblibprofilingS.a")
SET(ADDITIONAL_PROFILE_FLAGS "-finstrument-functions")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "${ADDITIONAL_PROFILE_FLAGS}")
add_executable(toolchainTester main.cpp)
target_link_libraries(toolchainTester ${ADDITIONAL_PROFILE_LIBRARY})
但是随后出现错误:mingw32-make.exe[3]: *** No rule to make target 'C:/qnx700/target/qnx7/armle-v7/usr/liblibprofilingS.a', needed by '../out/profileout'. Stop.
还有其他任何想法吗?预先感谢。
答案 0 :(得分:0)
如果有人在寻找相同的解决方法,如何为不同的配置文件管理不同的标志和库,这是一种工作方式:
首先在工具链文件中设置变量
SET(ADDITIONAL_PROFILE_LIBRARY "$ENV{QNX_BASE}/target/qnx7/armle-v7/usr/lib/libprofilingS.a")
SET(ADDITIONAL_CXX_FLAGS "-finstrument-functions")
呼叫/将其覆盖在CMakeLists.txt中
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "${ADDITIONAL_CXX_FLAGS}")
add_executable(toolchainTester main.cpp)
target_link_libraries(toolchainTester ${ADDITIONAL_PROFILE_LIBRARY})