0

我试图将现有c++项目转换为CMake. 现有的与makefile配合得很好,我已经成功地转换了类似的文件。但是当我尝试转换这个时,出现了一些令人困惑的错误,如下所示:

18:22:10: Running steps for project encryption... 
18:22:10: Starting: "/export/opt/cmake-3.2.2/bin/cmake" --build . --target all 
Linking CXX executable dist/Debug_64/GNU-Linux-x86/encryption 
CMakeFiles/encryption.dir/encryption.cc.o: In function `main': 
/export1/chao/nanos/nano_clean/nano_clean/src/encryption/encryption.cc:33: undefined reference to `stlp_std::cout' 
...
/export1/chao/nanos/nano_clean/nano_clean/lib/STLport/stlport/stl/_string.c:604: undefined reference to `stlp_std::__stl_throw_out_of_range(char const*)' 
...

起初我认为它找不到iostream,所以我包含iostream在 / export1/chao/nanos/nano_clean/nano_clean/lib/STLport/stlport/ by using 'INCLUDE_DIRECTORIES',但它没有用。你能给我一些建议吗?我的 CMakeLists.txt 如下:

include_directories(/export1/chao/nanos/nano_clean/nano_clean/lib/STLport/stlport)
include_directories(/export1/chao/nanos/nano_clean/nano_clean/lib/STLport/stlport/h/using)
include_directories(/export1/chao/nanos/nano_clean/nano_clean/lib/boost/1.49.0/boost/tr1/tr1)
link_directories(
../common/dist/${CONF}/GNU-Linux-x86
/export2/chao/nanos/nano_built/lib/tiburonda/dist/include
)
aux_source_directory(. SRC_LIST)
include_directories(../common/include
)
add_executable(encryption ${SRC_LIST})
target_link_libraries(encryption libcommon.a)

original makefile,我发现这个项目使用source file encryption.ccat ./, header files: encryption.hat./和其他 at ../common/include

4

0 回答 0