簡體   English   中英

clang:警告:-lgtest:'鏈接器'輸入未使用

[英]clang: warning: -lgtest: 'linker' input unused

我正在用C ++ 11開發應用程序,我的編譯器是CLang ++ 3.3。 我也在Linux Mint 14上使用Netbeans 7.3 IDE。

我的所有測試都是使用GoogleTest(gtest-1.6.0)完成的,除了本文標題中提到的警告外,幾乎所有內容都正常。

以下是netbeans執行的命令行示例:

clang++ -pedantic-errors -lgtest -pthread   -c -g -Wall -std=c++11 -pedantic-errors -lgtest -pthread -MMD -MP -MF build/Debug/CLang-Linux-x86/_ext/1802678175/main.o.d -o build/Debug/CLang-Linux-x86/_ext/1802678175/main.o ../GIT_CryptoCode/src/main.cpp

我不知道為什么,但該命令包含兩個屬性,當然會給出相同的警告兩次。 這就是我在項目屬性中所做的: 項目屬性:C ++編譯器 如果我刪除附加選項,gtest不工作​​,命令行變成這樣: clang++ -c -g -Wall -std=c++11 ... 我該怎么做才能讓某些屬性重復?

好吧,即使使用cmake,我也會收到Clang的警告(這次出現一次:))。 我也用GCC 4.7進行了測試,但沒有得到任何警告。 這是我在GCC的cmake文件中使用的命令行:

set (CMAKE_CXX_FLAGS                "-Winline -Wall -Werror -pedantic-errors -pthread -std=c++11")

因此,Clang似乎是個問題。 有誰知道這個警告來自何處以及如何刪除它? 這是一個Clang bug嗎?

謝謝你的幫助。

我要感謝@Fraser的幫助,幫助我找到刪除警告的方法。 基本上,不是在C ++編譯器部分的附加選項中寫入-pedantic-errors -lgtest -pthread而是給出重復警告,這些屬性應該在項目的鏈接器部分中。 在此輸入圖像描述

因此,C ++編譯器部分中的附加選項保留為空。 現在,我可以毫無問題地使用-Werror屬性。

另外,在cmake文件中,該行

target_link_libraries(${Project_Name} ${GTEST_BOTH_LIBRARIES})

將gtest庫鏈接到項目。 因此,不需要-lgtest

set (CMAKE_CXX_FLAGS   "-Winline -Wall -Werror -pedantic-errors -pthread -std=c++11")

對於GCC和Clang來說都是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM