如何在文件名后强制使用cmake put选项?

时间:2015-10-26 13:42:33

标签: gcc linker cmake

由于某种原因,以下现在可以正常工作

/usr/bin/c++  -lm -L/usr/X11R6/lib  -lX11 -lpthread  CMakeFiles/net.dir/advanced.cpp.o   -o net -rdynamic

但这样做:

/usr/bin/c++  -lm -L/usr/X11R6/lib   CMakeFiles/net.dir/advanced.cpp.o  -lX11 -lpthread  -o net -rdynamic

我的问题是如何强制CMake将选项AFTER /advanced.cpp.o放到我的情况下进行编译。我使用的所有CMake选项都在编译之前放置了我的自定义GCC选项。

我的cmake文件

cmake_minimum_required (VERSION 2.6)
project (mnist)

set( CMAKE_VERBOSE_MAKEFILE on )

add_compile_options("-O2")
add_compile_options("-std=c++11")

SET( CMAKE_EXE_LINKER_FLAGS "-L/usr/X11R6/lib -lm -lpthread -lX11")

include_directories("${PROJECT_SOURCE_DIR}")

add_executable(net advanced.cpp)

1 个答案:

答案 0 :(得分:1)

使用target_link_libraries而非添加CMAKE_EXE_LINKER_FLAGS。 并在链接器标志中使用link_directories而不是-L选项。