Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
276 views
in Technique[技术] by (71.8m points)

链接时报错cannot find -lDolphinDB

在win10上用minGW编译dolphindb c++插件,CMakeList.txt如下

cmake_minimum_required(VERSION 3.0)
project(PluginMQTTClient)

set(CMAKE_CXX_STANDARD 11)
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/lib/")

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/ PluginSrc)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/lib/ MQTTSrc)

set(CMAKE_VERBOSE_MAKEFILE ON)
if (WIN32 OR MINGW)
    set (platform_macro "-DWINDOWS")
elseif (UNIX)
    set (platform_macro "-DLINUX")
    add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
endif ()
message("platform: ${platform_macro}")


set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ${platform_macro} ")
#add_compile_options( "-std=c++0x"  "-fPIC" )
#add_compile_options("-std=c++11" "-fPIC" ${platform_macro} "-Wall")

add_library(${PROJECT_NAME} SHARED ${PluginSrc} ${MQTTSrc} ./src/templates/posix_sockets.c)

link_directories("${CMAKE_BINARY_DIR}")
link_directories("D:/DolphinDB/DolphinDB_Win64_V1.00.23/server")
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath,.")
if (WIN32)
    target_link_libraries(${PROJECT_NAME}  pthread WS2_32 DolphinDB)
elseif (UNIX)
    target_link_libraries(${PROJECT_NAME} pthread)
endif ()

编译后出错:

====================[ Build | all | Debug ]=====================================
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" --build D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debug --target all -- -j 6
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" -SD:New2xdb
elease100DolphinDBPluginmqtt -BD:New2xdb
elease100DolphinDBPluginmqttcmake-build-debug --check-build-system CMakeFilesMakefile.cmake 0
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" -E cmake_progress_start D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debugCMakeFiles D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debugCMakeFilesprogress.marks
C:/MinGW/MinGW/mingw64/bin/mingw32-make.exe -f CMakeFilesMakefile2 all
mingw32-make.exe[1]: Entering directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
C:/MinGW/MinGW/mingw64/bin/mingw32-make.exe -f CMakeFilesPluginMQTTClient.diruild.make CMakeFiles/PluginMQTTClient.dir/depend
mingw32-make.exe[2]: Entering directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" -E cmake_depends "MinGW Makefiles" D:New2xdb
elease100DolphinDBPluginmqtt D:New2xdb
elease100DolphinDBPluginmqtt D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debug D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debug D:New2xdb
elease100DolphinDBPluginmqttcmake-build-debugCMakeFilesPluginMQTTClient.dirDependInfo.cmake --color=
Scanning dependencies of target PluginMQTTClient
mingw32-make.exe[2]: Leaving directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
C:/MinGW/MinGW/mingw64/bin/mingw32-make.exe -f CMakeFilesPluginMQTTClient.diruild.make CMakeFiles/PluginMQTTClient.dir/build
mingw32-make.exe[2]: Entering directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
[ 14%] Building CXX object CMakeFiles/PluginMQTTClient.dir/src/parser.cpp.obj
C:MinGWMinGWmingw64ing++.exe  -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_CXX.rsp -Wall -DWINDOWS  -g   -std=gnu++11 -o CMakeFilesPluginMQTTClient.dirsrcparser.cpp.obj -c D:New2xdb
elease100DolphinDBPluginmqttsrcparser.cpp
[ 28%] Building CXX object CMakeFiles/PluginMQTTClient.dir/src/pub_client.cpp.obj
C:MinGWMinGWmingw64ing++.exe  -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_CXX.rsp -Wall -DWINDOWS  -g   -std=gnu++11 -o CMakeFilesPluginMQTTClient.dirsrcpub_client.cpp.obj -c D:New2xdb
elease100DolphinDBPluginmqttsrcpub_client.cpp
[ 42%] Building CXX object CMakeFiles/PluginMQTTClient.dir/src/sub_client.cpp.obj
C:MinGWMinGWmingw64ing++.exe  -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_CXX.rsp -Wall -DWINDOWS  -g   -std=gnu++11 -o CMakeFilesPluginMQTTClient.dirsrcsub_client.cpp.obj -c D:New2xdb
elease100DolphinDBPluginmqttsrcsub_client.cpp
[ 57%] Building C object CMakeFiles/PluginMQTTClient.dir/lib/mqtt.c.obj
C:MinGWMinGWmingw64ingcc.exe -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_C.rsp -g   -o CMakeFilesPluginMQTTClient.dirlibmqtt.c.obj   -c D:New2xdb
elease100DolphinDBPluginmqttlibmqtt.c
[ 71%] Building C object CMakeFiles/PluginMQTTClient.dir/lib/mqtt_pal.c.obj
C:MinGWMinGWmingw64ingcc.exe -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_C.rsp -g   -o CMakeFilesPluginMQTTClient.dirlibmqtt_pal.c.obj   -c D:New2xdb
elease100DolphinDBPluginmqttlibmqtt_pal.c
[ 85%] Building C object CMakeFiles/PluginMQTTClient.dir/src/templates/posix_sockets.c.obj
C:MinGWMinGWmingw64ingcc.exe -DPluginMQTTClient_EXPORTS @CMakeFiles/PluginMQTTClient.dir/includes_C.rsp -g   -o CMakeFilesPluginMQTTClient.dirsrcemplatesposix_sockets.c.obj   -c D:New2xdb
elease100DolphinDBPluginmqttsrcemplatesposix_sockets.c
[100%] Linking CXX shared library libPluginMQTTClient.dll
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" -E cmake_link_script CMakeFilesPluginMQTTClient.dirlink.txt --verbose=1
"C:Program FilesJetBrainsCLion 2019.1.4incmakewinincmake.exe" -E remove -f CMakeFilesPluginMQTTClient.dir/objects.a
C:MinGWMinGWmingw64inar.exe cr CMakeFilesPluginMQTTClient.dir/objects.a @CMakeFilesPluginMQTTClient.dirobjects1.rsp
C:MinGWMinGWmingw64ing++.exe   -Wall -DWINDOWS  -g  -shared -o libPluginMQTTClient.dll -Wl,--out-implib,libPluginMQTTClient.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFilesPluginMQTTClient.dir/objects.a -Wl,--no-whole-archive @CMakeFilesPluginMQTTClient.dirlinklibs.rsp
C:/MinGW/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: **cannot find -lDolphinDB
collect2.exe: error: ld returned 1 exit status**
mingw32-make.exe[2]: Leaving directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
mingw32-make.exe[2]: *** [CMakeFilesPluginMQTTClient.diruild.make:169: libPluginMQTTClient.dll] Error 1
mingw32-make.exe[1]: *** [CMakeFilesMakefile2:75: CMakeFiles/PluginMQTTClient.dir/all] Error 2
mingw32-make.exe[1]: Leaving directory 'D:/New2xdb/release100/DolphinDBPlugin/mqtt/cmake-build-debug'
mingw32-make.exe: *** [Makefile:86: all] Error 2

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...