簡體   English   中英

如何修復對`b2World :: b2World(b2Vec2 const&)'的未定義引用

[英]How to fix undefined reference to `b2World::b2World(b2Vec2 const&)'

main.cpp

#include <iostream>
#include <Box2D/Box2D.h>

int main() {
    int32 velocityIterations = 6;
    int32 positionIterations = 2;
    b2Vec2 gravity(0.0f, -10.0f);
    b2World world(gravity);

    std::cout << "Hello, world!" << std::endl;
}

我得到的錯誤:

未定義對`b2World :: b2World(b2Vec2 const&)'的引用

當我嘗試在CMakeLists.txt中鏈接Box2D時:

include_directories(C:/Users/blahblah/CPPLibs)
target_link_libraries(HelloWorld Box2D)

我得到:

c:/ mingw / bin /../ lib / gcc / x86_64-w64-mingw32 / 6.1.0 /../../../../ x86_64-w64-mingw32 / bin / ld.exe:找不到-lBox2D

如何將Box2D正確導入到我的項目中?

您無法編譯,因為您的鏈接器找不到Box2D源文件。 您必須手動添加.cpp文件(這是一個較差的解決方案),或者使用Box2D源代碼創建靜態庫(例如... / Box2D_v2.3.0 / Box2D / Box2D)。 生成的文件(例如libBox2D.a)添加到您的項目中,並且應該對其進行編譯而不會出現任何問題。

暫無
暫無

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

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