मुझे कॉनन और सेमेक की समस्या है:

कॉनन के साथ मैं अपने पुस्तकालयों को डाउनलोड कर रहा हूं और मैं सेमेक के साथ संकलन करना चाहता हूं, यहां मेरा सीएमकेलिस्ट्स है।

cmake_minimum_required(VERSION 3.16)
project(BABEL)

set(CMAKE_CXX_STANDARD 20)

set(PROJECT_NAME BABEL)

set(SOURCES qt/main.cpp)

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
include(${CMAKE_BINARY_DIR}/conan_paths.cmake)

conan_basic_setup(KEEP_RPATHS)

if (APPLE)
    set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
endif (APPLE)

file(WRITE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf [Paths]\nPrefix=${CONAN_QT_ROOT})

add_executable(${PROJECT_NAME} ${SOURCES})

find_package(portaudio REQUIRED)
find_package(opus REQUIRED)
find_package(Qt5 COMPONENTS Widgets Network Core Gui REQUIRED)

target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
target_link_libraries(${PROJECT_NAME} opus)

if (WIN32)
    target_link_libraries(${PROJECT_NAME} portaudio_x64)
else()
    target_link_libraries(${PROJECT_NAME} portaudio)
endif()

अगर मैं यह आदेश लिखता हूं:

mkdir build && cd build && conan install .. && cmake .. -G "Unix Makefiles" && cmake --build.

मुझे cmake --build लिखना होगा। बाइनरी के निर्माण के लिए दूसरी बार, मैंने यहां क्या गलत किया है इसका कोई विचार?

संपादित करें यहाँ निर्माण का परिणाम है:

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/laurent/Documents/Delivery/Tek3/CPP/B-CPP-500-LYN-5-1-babel-kevin.melinon/build
-- Conan: Adjusting output directories
-- Conan: Using cmake global configuration
-- Conan: Adjusting language standard
-- Current conanbuildinfo.cmake directory: /Users/laurent/Documents/Delivery/Tek3/CPP/B-CPP-500-LYN-5-1-babel-kevin.melinon/build
-- Conan: Using autogenerated Findportaudio.cmake
-- Library portaudio found /Users/laurent/.conan/data/portaudio/19.7.0/bincrafters/stable/package/22e8f592c814313580425adf77089996d9853e39/lib/libportaudio.dylib
-- Found: /Users/laurent/.conan/data/portaudio/19.7.0/bincrafters/stable/package/22e8f592c814313580425adf77089996d9853e39/lib/libportaudio.dylib
-- Conan: Using autogenerated FindOpus.cmake
CMake Warning (dev) at /usr/local/Cellar/cmake/3.21.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (Opus) does
  not match the name of the calling package (opus).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  build/Findopus.cmake:81 (find_package_handle_standard_args)
  CMakeLists.txt:24 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

मैं पूरा परिणाम नहीं डाल सकता।

0
Diamonddedo 24 सितंबर 2021, 16:33
बिल्ड समस्या को समझने के लिए आपको शायद हमारे लिए उत्पादित टेक्स्ट आउटपुट दिखाना होगा।
 – 
drescherjm
24 सितंबर 2021, 16:37
1
हालांकि वह आउटपुट कैसे समाप्त होता है? हमें cmake --build . कमांड का अंतिम आउटपुट देखना होगा।
 – 
jwezorek
24 सितंबर 2021, 16:53
यहाँ पहले cmake --build का अंत है। : -- Found: /Users/laurent/.conan/data/qt/5.15.2/_/_/package/38dca09af9f0c48f937a38c8ac5f1d5d03a37a22/lib/libQt5Network_debug.dylib -- Configuring done -- Generating done -- Build files have been written to: /Users/laurent/Documents/Delivery/Tek3/CPP/B-CPP-500-LYN-5-1-babel-kevin.melinon/build और यहाँ दूसरा है: [ 50%] Building CXX object CMakeFiles/BABEL.dir/qt/main.cpp.o [100%] Linking CXX executable bin/BABEL [100%] Built target BABEL
 – 
Diamonddedo
24 सितंबर 2021, 16:54
मेरा मतलब है, यह बनाया। यह कहीं है।
 – 
jwezorek
24 सितंबर 2021, 16:58
1
संदेश -- Build files have been written to: ... कॉन्फ़िगरेशन प्रक्रिया को समाप्त करता है। (cmake .. -G "Unix Makefiles" द्वारा शुरू किया गया)। cmake --build . पर कॉल निश्चित रूप से अधिक संदेश उत्पन्न करेगा। यदि यह आपका मामला नहीं है, तो cmake --build. बस निष्पादित नहीं है। सभी आदेशों को &&-अलग अनुक्रम में रखने के बजाय, उन्हें एक-एक करके मैन्युअल रूप से निष्पादित करने का प्रयास करें। और जांचें, कि पहला cmake --build. कुछ बनाने के बारे में सामान्य आउटपुट देता है।
 – 
Tsyvarev
24 सितंबर 2021, 18:12

1 उत्तर

सबसे बढ़िया उत्तर

तो जाहिर तौर पर सभी कमांड को एक में लिखते समय एक बग होता है, उन्हें एक-एक करके टाइप करने से समस्या हल हो जाती है।

0
Diamonddedo 27 सितंबर 2021, 21:19