【发布时间】:2015-10-26 13:42:33
【问题描述】:
由于某种原因,以下现在可以正常工作
/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 将选项放在 /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)
【问题讨论】:
-
获取此命令的最小 CMakeLists.txt 是多少?有些命令有 AFTER/BEFORE 语句。
-
我尝试使用 SET(CMAKE_EXE_LINKER_FLAGS "-L/usr/X11R6/lib -lm -lpthread -lX11")
-
你应该改用
add_library。 -
来自cmake.org/cmake/help/v3.0/command/add_library.html:添加一个名为
的库目标,该目标从命令调用中列出的源文件构建。这对我有什么帮助? -
对不起,我的错误。我的意思是
target_link_libraries